diff --git a/CHANGES.txt b/CHANGES.txt index 9a5e80c5cd..892c34b6b5 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,4 @@ -New in master +New in v8.1.2 ============= Features @@ -13,8 +13,7 @@ Features with ```` (via Issue #3405) * Improve ``nikola auto`` performance with rate-limiting, support ``-n`` argument to pass to ``nikola build`` (Issue #3401) -* Added Marathi translation -* Add support for the `Utterances `_ comment system. +* Add support for the `Utterances `_ comment system Bugfixes -------- @@ -37,10 +36,10 @@ Bugfixes * Ensure query strings and fragments are kept with ``URL_TYPE = "full_path"`` (Issue #3448) * Don’t run typogrify filters on ```` tag to avoid adding extra - tags(Issue #3405) + tags (Issue #3405) * Fix handling of duplicate plugins on Windows * Allow else clause in post-list plugin. (Issue #3436) -* Ensure `type` metadata value from plugins is preserved (Issue 3445) +* Ensure ``type`` metadata value from plugins is preserved (Issue 3445) * Fix path handlers with slashes on Windows New in v8.1.1 diff --git a/docs/extending.rst b/docs/extending.rst index 498992992a..70448b9123 100644 --- a/docs/extending.rst +++ b/docs/extending.rst @@ -6,7 +6,7 @@ .. description: .. author: The Nikola Team -:Version: 8.1.1 +:Version: 8.1.2 :Author: Roberto Alsina <ralsina@netmanagers.com.ar> .. class:: alert alert-primary float-md-right diff --git a/docs/man/nikola.1.gz b/docs/man/nikola.1.gz index 70acd36c60..b8029fb9be 100644 Binary files a/docs/man/nikola.1.gz and b/docs/man/nikola.1.gz differ diff --git a/docs/man/nikola.rst b/docs/man/nikola.rst index 9648261a7d..60cda19ef4 100644 --- a/docs/man/nikola.rst +++ b/docs/man/nikola.rst @@ -6,7 +6,7 @@ Nikola A Static Site and Blog Generator -------------------------------- -:Version: Nikola 8.1.1 +:Version: Nikola 8.1.2 :Manual section: 1 :Manual group: User Commands diff --git a/docs/manual.rst b/docs/manual.rst index 64783003ca..4cacbeb33b 100644 --- a/docs/manual.rst +++ b/docs/manual.rst @@ -7,7 +7,7 @@ .. has_math: true .. author: The Nikola Team -:Version: 8.1.1 +:Version: 8.1.2 .. class:: alert alert-primary float-md-right @@ -1865,7 +1865,7 @@ sure you have ``nikola`` and ``git`` installed on your PATH. * ``GITHUB_REMOTE_NAME`` is the remote to which changes are pushed. * ``GITHUB_COMMIT_SOURCE`` controls whether or not the source branch is automatically committed to and pushed. We recommend setting it to - ``True``, unless you are automating builds with Travis CI. + ``True``, unless you are automating builds with CI (eg. GitHub Actions/GitLab CI). 4. Create a ``.gitignore`` file. We recommend adding at least the following entries: @@ -1887,14 +1887,13 @@ If you want to use a custom domain, create your ``CNAME`` file in output directory. To add a custom commit message, use the ``-m`` option, followed by your message. -Automated rebuilds (GitHub Actions, Travis CI, GitLab) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Automated rebuilds (GitHub Actions, GitLab) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you want automated rebuilds and GitHub Pages deployment, allowing you to blog from anywhere in the world, you have multiple options: * `Automating Nikola rebuilds with GitHub Actions <https://getnikola.com/blog/automating-nikola-rebuilds-with-github-actions.html>`_ (easier for GitHub) -* `Automating Nikola rebuilds with Travis CI <https://getnikola.com/blog/automating-nikola-rebuilds-with-travis-ci.html>`_ * `Example Nikola site for GitLab Pages <https://gitlab.com/pages/nikola>`_ Comments @@ -2402,7 +2401,7 @@ You can apply filters to specific posts or pages by using the ``filters`` metada .. filters: filters.html_tidy_nowrap, "sed s/foo/bar %s" -Please note that applying custom filters (not those provided via Nikola's filter module) +Please note that applying custom filters (not those provided via Nikola's filter module) via metadata only works for filters implemented via external programs like in that `sed` example. Optimizing Your Website diff --git a/docs/social_buttons.rst b/docs/social_buttons.rst index 034593ea39..6b5280596e 100644 --- a/docs/social_buttons.rst +++ b/docs/social_buttons.rst @@ -6,7 +6,7 @@ .. description: .. author: The Nikola Team -:Version: 8.1.1 +:Version: 8.1.2 .. class:: alert alert-primary float-md-right diff --git a/docs/sphinx/conf.py b/docs/sphinx/conf.py index 40fdb0a3c2..dbc21dd7f2 100644 --- a/docs/sphinx/conf.py +++ b/docs/sphinx/conf.py @@ -51,9 +51,9 @@ # built documents. # # The short X.Y version. -version = '8.1.1' +version = '8.1.2' # The full version, including alpha/beta/rc tags. -release = '8.1.1' +release = '8.1.2' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/docs/support.rst b/docs/support.rst index c1b30f3e5a..03c039a561 100644 --- a/docs/support.rst +++ b/docs/support.rst @@ -4,7 +4,7 @@ .. description: Get help using Nikola, or contact us. .. author: The Nikola Team -:Version: 8.1.1 +:Version: 8.1.2 .. class:: alert alert-primary float-md-right diff --git a/docs/template-variables.rst b/docs/template-variables.rst index cc1018114e..4eff09661b 100644 --- a/docs/template-variables.rst +++ b/docs/template-variables.rst @@ -3,7 +3,7 @@ .. date: 2017-04-13 12:00:00 .. author: The Nikola Team -:Version: 8.1.1 +:Version: 8.1.2 :Author: Chris Warrick <chris@getnikola.com> Variables available in templates are listed below. diff --git a/docs/theming.rst b/docs/theming.rst index c33688db7b..c9fb8c27c0 100644 --- a/docs/theming.rst +++ b/docs/theming.rst @@ -6,7 +6,7 @@ .. description: .. author: The Nikola Team -:Version: 8.1.1 +:Version: 8.1.2 :Author: Roberto Alsina <ralsina@netmanagers.com.ar> .. class:: alert alert-primary float-md-right diff --git a/nikola/__init__.py b/nikola/__init__.py index 40e0cbe2e7..4ead429cdd 100644 --- a/nikola/__init__.py +++ b/nikola/__init__.py @@ -29,7 +29,7 @@ import os import sys -__version__ = '8.1.1' +__version__ = '8.1.2' DEBUG = bool(os.getenv('NIKOLA_DEBUG')) SHOW_TRACEBACKS = bool(os.getenv('NIKOLA_SHOW_TRACEBACKS')) diff --git a/nikola/data/themes/base-jinja/templates/base_helper.tmpl b/nikola/data/themes/base-jinja/templates/base_helper.tmpl index 85cdf2edeb..a05abb986f 100644 --- a/nikola/data/themes/base-jinja/templates/base_helper.tmpl +++ b/nikola/data/themes/base-jinja/templates/base_helper.tmpl @@ -82,7 +82,7 @@ lang="{{ lang }}"> <script src="https://polyfill.io/v3/polyfill.js?features=Intl.RelativeTimeFormat.%7Elocale.{{ luxon_locales[lang] }}"></script> {% endif %} {% if use_cdn %} - <script src="https://cdn.jsdelivr.net/npm/luxon@1.24.1/build/global/luxon.min.js" integrity="sha256-5FiU7kNb/UJWqMesUFnKv4dJzLMiTWljH0ONkz+h704=" crossorigin="anonymous"></script> + <script src="https://cdn.jsdelivr.net/npm/luxon@1.25.0/build/global/luxon.min.js" integrity="sha256-OVk2fwTRcXYlVFxr/ECXsakqelJbOg5WCj1dXSIb+nU=" crossorigin="anonymous"></script> {% else %} <script src="/assets/js/luxon.min.js"></script> {% endif %} diff --git a/nikola/data/themes/base-jinja/templates/comments_helper.tmpl b/nikola/data/themes/base-jinja/templates/comments_helper.tmpl index f0c1b5a164..2a7d8dcb7c 100644 --- a/nikola/data/themes/base-jinja/templates/comments_helper.tmpl +++ b/nikola/data/themes/base-jinja/templates/comments_helper.tmpl @@ -6,6 +6,7 @@ {% import 'comments_helper_facebook.tmpl' as facebook with context %} {% import 'comments_helper_isso.tmpl' as isso with context %} {% import 'comments_helper_commento.tmpl' as commento with context %} +{% import 'comments_helper_utterances.tmpl' as utterances with context %} {% macro comment_form(url, title, identifier) %} {% if comment_system == 'disqus' %} @@ -20,6 +21,8 @@ {{ isso.comment_form(url, title, identifier) }} {% elif comment_system == 'commento' %} {{ commento.comment_form(url, title, identifier) }} + {% elif comment_system == 'utterances' %} + {{ utterances.comment_form(url, title, identifier) }} {% endif %} {% endmacro %} @@ -36,6 +39,8 @@ {{ isso.comment_link(link, identifier) }} {% elif comment_system == 'commento' %} {{ commento.comment_link(link, identifier) }} + {% elif comment_system == 'utterances' %} + {{ utterances.comment_link(link, identifier) }} {% endif %} {% endmacro %} @@ -52,5 +57,7 @@ {{ isso.comment_link_script() }} {% elif comment_system == 'commento' %} {{ commento.comment_link_script() }} + {% elif comment_system == 'utterances' %} + {{ utterances.comment_link_script() }} {% endif %} {% endmacro %} diff --git a/nikola/data/themes/base-jinja/templates/comments_helper_utterances.tmpl b/nikola/data/themes/base-jinja/templates/comments_helper_utterances.tmpl new file mode 100644 index 0000000000..e1c03c2f08 --- /dev/null +++ b/nikola/data/themes/base-jinja/templates/comments_helper_utterances.tmpl @@ -0,0 +1,23 @@ +{# -*- coding: utf-8 -*- #} +{% macro comment_form(url, title, identifier) %} + {% if comment_system_id %} + <div data-title="{{ title|e }}" id="utterances-thread"></div> + <script src="https://utteranc.es/client.js" repo="{{ comment_system_id }}" + {% if utterances_config %} + {% for k, v in utterances_config.items() %} + {{ k }}="{{ v }}" + {% endfor %} + {% endif %} + ></script> + {% endif %} +{% endmacro %} + +{% macro comment_link(link, identifier) %} + {% if comment_system_id %} + <a href="{{ link }}#utterances-thread">{{ messages("Comments") }}</a> + {% endif %} +{% endmacro %} + + +{% macro comment_link_script() %} +{% endmacro %} diff --git a/nikola/data/themes/base-jinja/templates/gallery.tmpl b/nikola/data/themes/base-jinja/templates/gallery.tmpl index a5f43b7b41..d425106465 100644 --- a/nikola/data/themes/base-jinja/templates/gallery.tmpl +++ b/nikola/data/themes/base-jinja/templates/gallery.tmpl @@ -21,7 +21,7 @@ <div class="thumnbnail-container"> <a href="{{ folder }}" class="thumbnail image-reference" title="{{ ftitle|e }}"> {% if fpost and fpost.previewimage %} - <img src="{{ url_replacer(fpost.permalink(), fpost.previewimage, lang, 'full_path') }}" alt="{{ ftitle|e }}" loading="lazy" style="max-width:{{ thumbnail_size }}px; max-height:{{ thumbnail_size }}px;" /> + <img src="{{ fpost.previewimage }}" alt="{{ ftitle|e }}" loading="lazy" style="max-width:{{ thumbnail_size }}px; max-height:{{ thumbnail_size }}px;" /> {% else %} <div style="height: {{ thumbnail_size }}px; width: {{ thumbnail_size }}px; background-color: #eee;"></div> {% endif %} diff --git a/nikola/data/themes/base-jinja/templates/index.tmpl b/nikola/data/themes/base-jinja/templates/index.tmpl index 7f5ef4ece4..55ae9aaa20 100644 --- a/nikola/data/themes/base-jinja/templates/index.tmpl +++ b/nikola/data/themes/base-jinja/templates/index.tmpl @@ -31,7 +31,11 @@ <h1 class="p-name entry-title"><a href="{{ post.permalink() }}" class="u-url">{{ post.title()|e }}</a></h1> <div class="metadata"> <p class="byline author vcard"><span class="byline-name fn" itemprop="author"> - {% if author_pages_generated %} + {% if author_pages_generated and multiple_authors_per_post %} + {% for author in post.authors() %} + <a href="{{ _link('author', author) }}">{{ author|e }}</a> + {% endfor %} + {% elif author_pages_generated %} <a href="{{ _link('author', post.author()) }}">{{ post.author()|e }}</a> {% else %} {{ post.author()|e }} diff --git a/nikola/data/themes/base-jinja/templates/post_header.tmpl b/nikola/data/themes/base-jinja/templates/post_header.tmpl index d81b00ea5d..d3c5d3e418 100644 --- a/nikola/data/themes/base-jinja/templates/post_header.tmpl +++ b/nikola/data/themes/base-jinja/templates/post_header.tmpl @@ -32,7 +32,11 @@ {{ html_title() }} <div class="metadata"> <p class="byline author vcard p-author h-card"><span class="byline-name fn p-name" itemprop="author"> - {% if author_pages_generated %} + {% if author_pages_generated and multiple_authors_per_post %} + {% for author in post.authors() %} + <a class="u-url" href="{{ _link('author', author) }}">{{ author|e }}</a> + {% endfor %} + {% elif author_pages_generated %} <a class="u-url" href="{{ _link('author', post.author()) }}">{{ post.author()|e }}</a> {% else %} {{ post.author()|e }} diff --git a/nikola/data/themes/base/templates/base_helper.tmpl b/nikola/data/themes/base/templates/base_helper.tmpl index daf78521ac..18801ed110 100644 --- a/nikola/data/themes/base/templates/base_helper.tmpl +++ b/nikola/data/themes/base/templates/base_helper.tmpl @@ -82,7 +82,7 @@ lang="${lang}"> <script src="https://polyfill.io/v3/polyfill.js?features=Intl.RelativeTimeFormat.%7Elocale.${luxon_locales[lang]}"></script> % endif % if use_cdn: - <script src="https://cdn.jsdelivr.net/npm/luxon@1.24.1/build/global/luxon.min.js" integrity="sha256-5FiU7kNb/UJWqMesUFnKv4dJzLMiTWljH0ONkz+h704=" crossorigin="anonymous"></script> + <script src="https://cdn.jsdelivr.net/npm/luxon@1.25.0/build/global/luxon.min.js" integrity="sha256-OVk2fwTRcXYlVFxr/ECXsakqelJbOg5WCj1dXSIb+nU=" crossorigin="anonymous"></script> % else: <script src="/assets/js/luxon.min.js"></script> % endif diff --git a/nikola/data/themes/bootblog4-jinja/templates/base_helper.tmpl b/nikola/data/themes/bootblog4-jinja/templates/base_helper.tmpl index d0a4bd129d..0b74696023 100644 --- a/nikola/data/themes/bootblog4-jinja/templates/base_helper.tmpl +++ b/nikola/data/themes/bootblog4-jinja/templates/base_helper.tmpl @@ -66,7 +66,7 @@ lang="{{ lang }}"> {% if use_cdn %} <script src="http://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script> - <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script> + <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.min.js" integrity="sha384-w1Q4orYjBQndcko6MimVbzY0tgp4pWB4lZ7lr30WKz0vr/aWKhXdBNmNb5D92v7s" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/baguettebox.js/1.11.1/baguetteBox.min.js" integrity="sha256-ULQV01VS9LCI2ePpLsmka+W0mawFpEA0rtxnezUj4A4=" crossorigin="anonymous"></script> {% endif %} {% if use_bundles and use_cdn %} @@ -86,7 +86,7 @@ lang="{{ lang }}"> <script src="https://polyfill.io/v3/polyfill.js?features=Intl.RelativeTimeFormat.%7Elocale.{{ luxon_locales[lang] }}"></script> {% endif %} {% if use_cdn %} - <script src="https://cdn.jsdelivr.net/npm/luxon@1.24.1/build/global/luxon.min.js" integrity="sha256-5FiU7kNb/UJWqMesUFnKv4dJzLMiTWljH0ONkz+h704=" crossorigin="anonymous"></script> + <script src="https://cdn.jsdelivr.net/npm/luxon@1.25.0/build/global/luxon.min.js" integrity="sha256-OVk2fwTRcXYlVFxr/ECXsakqelJbOg5WCj1dXSIb+nU=" crossorigin="anonymous"></script> {% else %} <script src="/assets/js/luxon.min.js"></script> {% endif %} @@ -100,7 +100,7 @@ lang="{{ lang }}"> {% macro html_stylesheets() %} {% if use_cdn %} - <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous"> + <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/baguettebox.js/1.11.1/baguetteBox.min.css" integrity="sha256-cLMYWYYutHkt+KpNqjg7NVkYSQ+E2VbrXsEvOqU7mL0=" crossorigin="anonymous"> {% endif %} {% if use_bundles and use_cdn %} diff --git a/nikola/data/themes/bootblog4-jinja/templates/index.tmpl b/nikola/data/themes/bootblog4-jinja/templates/index.tmpl index af53a4c7e4..efc4e58b84 100644 --- a/nikola/data/themes/bootblog4-jinja/templates/index.tmpl +++ b/nikola/data/themes/bootblog4-jinja/templates/index.tmpl @@ -31,7 +31,11 @@ <h1 class="p-name entry-title"><a href="{{ post.permalink() }}" class="u-url">{{ post.title()|e }}</a></h1> <div class="metadata"> <p class="byline author vcard"><span class="byline-name fn" itemprop="author"> - {% if author_pages_generated %} + {% if author_pages_generated and multiple_authors_per_post %} + {% for author in post.authors() %} + <a href="{{ _link('author', author) }}">{{ author|e }}</a> + {% endfor %} + {% elif author_pages_generated %} <a href="{{ _link('author', post.author()) }}">{{ post.author()|e }}</a> {% else %} {{ post.author()|e }} @@ -88,7 +92,7 @@ {% else %} <div class="col-md-6 p-0 h-md-250 text-right d-none d-md-block"> {% endif %} - <img class="bootblog4-featured-large-image" src="{{ url_replacer(featured[0].permalink(), featured[0].previewimage, lang, 'full_path') }}" alt="{{ featured.pop(0).title() }}"> + <img class="bootblog4-featured-large-image" src="{{ featured[0].previewimage }}" alt="{{ featured.pop(0).title() }}"> </div> {% else %} <div class="lead my-3 mb-0">{{ featured.pop(0).text(teaser_only=True, strip_html=theme_config.get('featured_strip_html', True)) }}</div> @@ -113,7 +117,7 @@ {% if featured[0].previewimage %} <div class="card-text mb-auto bootblog4-featured-text">{{ featured[0].text(teaser_only=True, strip_html=theme_config.get('featured_strip_html', True)) }}</div> </div> - <img class="card-img-right flex-auto d-none d-lg-block" src="{{ url_replacer(featured[0].permalink(), featured[0].previewimage, lang, 'full_path') }}" alt="{{ featured.pop(0).title() }}"> + <img class="card-img-right flex-auto d-none d-lg-block" src="{{ featured[0].previewimage }}" alt="{{ featured.pop(0).title() }}"> {% else %} <div class="card-text mb-auto bootblog4-featured-text">{{ featured.pop(0).text(teaser_only=True, strip_html=theme_config.get('featured_strip_html', True)) }}</div> </div> @@ -131,7 +135,7 @@ {% if featured[0].previewimage %} <div class="card-text mb-auto bootblog4-featured-text">{{ featured[0].text(teaser_only=True, strip_html=theme_config.get('featured_strip_html', True)) }}</div> </div> - <img class="card-img-right flex-auto d-none d-lg-block" src="{{ url_replacer(featured[0].permalink(), featured[0].previewimage, lang, 'full_path') }}" alt="{{ featured.pop(0).title() }}"> + <img class="card-img-right flex-auto d-none d-lg-block" src="{{ featured[0].previewimage }}" alt="{{ featured.pop(0).title() }}"> {% else %} <div class="card-text mb-auto bootblog4-featured-text">{{ featured.pop(0).text(teaser_only=True, strip_html=theme_config.get('featured_strip_html', True)) }}</div> </div> diff --git a/nikola/data/themes/bootblog4/templates/base_helper.tmpl b/nikola/data/themes/bootblog4/templates/base_helper.tmpl index c10fce91ac..3c919b4d07 100644 --- a/nikola/data/themes/bootblog4/templates/base_helper.tmpl +++ b/nikola/data/themes/bootblog4/templates/base_helper.tmpl @@ -66,7 +66,7 @@ lang="${lang}"> %if use_cdn: <script src="http://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script> - <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script> + <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.min.js" integrity="sha384-w1Q4orYjBQndcko6MimVbzY0tgp4pWB4lZ7lr30WKz0vr/aWKhXdBNmNb5D92v7s" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/baguettebox.js/1.11.1/baguetteBox.min.js" integrity="sha256-ULQV01VS9LCI2ePpLsmka+W0mawFpEA0rtxnezUj4A4=" crossorigin="anonymous"></script> % endif %if use_bundles and use_cdn: @@ -86,7 +86,7 @@ lang="${lang}"> <script src="https://polyfill.io/v3/polyfill.js?features=Intl.RelativeTimeFormat.%7Elocale.${luxon_locales[lang]}"></script> %endif %if use_cdn: - <script src="https://cdn.jsdelivr.net/npm/luxon@1.24.1/build/global/luxon.min.js" integrity="sha256-5FiU7kNb/UJWqMesUFnKv4dJzLMiTWljH0ONkz+h704=" crossorigin="anonymous"></script> + <script src="https://cdn.jsdelivr.net/npm/luxon@1.25.0/build/global/luxon.min.js" integrity="sha256-OVk2fwTRcXYlVFxr/ECXsakqelJbOg5WCj1dXSIb+nU=" crossorigin="anonymous"></script> %else: <script src="/assets/js/luxon.min.js"></script> %endif @@ -100,7 +100,7 @@ lang="${lang}"> <%def name="html_stylesheets()"> % if use_cdn: - <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous"> + <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/baguettebox.js/1.11.1/baguetteBox.min.css" integrity="sha256-cLMYWYYutHkt+KpNqjg7NVkYSQ+E2VbrXsEvOqU7mL0=" crossorigin="anonymous"> % endif %if use_bundles and use_cdn: diff --git a/nikola/data/themes/bootstrap4-jinja/assets/css/theme.css b/nikola/data/themes/bootstrap4-jinja/assets/css/theme.css index 4d3e687194..20eee8eb13 100644 --- a/nikola/data/themes/bootstrap4-jinja/assets/css/theme.css +++ b/nikola/data/themes/bootstrap4-jinja/assets/css/theme.css @@ -222,6 +222,10 @@ pre.code { white-space: pre-wrap; } +.byline a:not(:last-child):after { + content: ","; +} + /* Override incorrect Bootstrap 4 default */ html[dir="rtl"] body { text-align: right; diff --git a/nikola/data/themes/bootstrap4-jinja/templates/base_helper.tmpl b/nikola/data/themes/bootstrap4-jinja/templates/base_helper.tmpl index 1af6cb703c..b4bcf855ac 100644 --- a/nikola/data/themes/bootstrap4-jinja/templates/base_helper.tmpl +++ b/nikola/data/themes/bootstrap4-jinja/templates/base_helper.tmpl @@ -66,7 +66,7 @@ lang="{{ lang }}"> {% if use_cdn %} <script src="http://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script> - <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script> + <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.min.js" integrity="sha384-w1Q4orYjBQndcko6MimVbzY0tgp4pWB4lZ7lr30WKz0vr/aWKhXdBNmNb5D92v7s" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/baguettebox.js/1.11.1/baguetteBox.min.js" integrity="sha256-ULQV01VS9LCI2ePpLsmka+W0mawFpEA0rtxnezUj4A4=" crossorigin="anonymous"></script> {% endif %} {% if use_bundles and use_cdn %} @@ -86,7 +86,7 @@ lang="{{ lang }}"> <script src="https://polyfill.io/v3/polyfill.js?features=Intl.RelativeTimeFormat.%7Elocale.{{ luxon_locales[lang] }}"></script> {% endif %} {% if use_cdn %} - <script src="https://cdn.jsdelivr.net/npm/luxon@1.24.1/build/global/luxon.min.js" integrity="sha256-5FiU7kNb/UJWqMesUFnKv4dJzLMiTWljH0ONkz+h704=" crossorigin="anonymous"></script> + <script src="https://cdn.jsdelivr.net/npm/luxon@1.25.0/build/global/luxon.min.js" integrity="sha256-OVk2fwTRcXYlVFxr/ECXsakqelJbOg5WCj1dXSIb+nU=" crossorigin="anonymous"></script> {% else %} <script src="/assets/js/luxon.min.js"></script> {% endif %} @@ -100,7 +100,7 @@ lang="{{ lang }}"> {% macro html_stylesheets() %} {% if use_cdn %} - <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous"> + <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/baguettebox.js/1.11.1/baguetteBox.min.css" integrity="sha256-cLMYWYYutHkt+KpNqjg7NVkYSQ+E2VbrXsEvOqU7mL0=" crossorigin="anonymous"> {% endif %} {% if use_bundles and use_cdn %} diff --git a/nikola/data/themes/bootstrap4/templates/base_helper.tmpl b/nikola/data/themes/bootstrap4/templates/base_helper.tmpl index 1e9f449e6a..f551116ffe 100644 --- a/nikola/data/themes/bootstrap4/templates/base_helper.tmpl +++ b/nikola/data/themes/bootstrap4/templates/base_helper.tmpl @@ -66,7 +66,7 @@ lang="${lang}"> %if use_cdn: <script src="http://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script> - <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script> + <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.min.js" integrity="sha384-w1Q4orYjBQndcko6MimVbzY0tgp4pWB4lZ7lr30WKz0vr/aWKhXdBNmNb5D92v7s" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/baguettebox.js/1.11.1/baguetteBox.min.js" integrity="sha256-ULQV01VS9LCI2ePpLsmka+W0mawFpEA0rtxnezUj4A4=" crossorigin="anonymous"></script> % endif %if use_bundles and use_cdn: @@ -86,7 +86,7 @@ lang="${lang}"> <script src="https://polyfill.io/v3/polyfill.js?features=Intl.RelativeTimeFormat.%7Elocale.${luxon_locales[lang]}"></script> %endif %if use_cdn: - <script src="https://cdn.jsdelivr.net/npm/luxon@1.24.1/build/global/luxon.min.js" integrity="sha256-5FiU7kNb/UJWqMesUFnKv4dJzLMiTWljH0ONkz+h704=" crossorigin="anonymous"></script> + <script src="https://cdn.jsdelivr.net/npm/luxon@1.25.0/build/global/luxon.min.js" integrity="sha256-OVk2fwTRcXYlVFxr/ECXsakqelJbOg5WCj1dXSIb+nU=" crossorigin="anonymous"></script> %else: <script src="/assets/js/luxon.min.js"></script> %endif @@ -100,7 +100,7 @@ lang="${lang}"> <%def name="html_stylesheets()"> %if use_cdn: - <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous"> + <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/baguettebox.js/1.11.1/baguetteBox.min.css" integrity="sha256-cLMYWYYutHkt+KpNqjg7NVkYSQ+E2VbrXsEvOqU7mL0=" crossorigin="anonymous"> % endif %if use_bundles and use_cdn: diff --git a/npm_assets/node_modules/.package-lock.json b/npm_assets/node_modules/.package-lock.json new file mode 100644 index 0000000000..d8171cd7de --- /dev/null +++ b/npm_assets/node_modules/.package-lock.json @@ -0,0 +1,72 @@ +{ + "name": "Nikola", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "node_modules/baguettebox.js": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/baguettebox.js/-/baguettebox.js-1.11.1.tgz", + "integrity": "sha512-0HnUVs+xaqwQOVbfi0kwZnZ1fJNWE5vJLCoCAtgQBtPmOJa1fhN8gubaBFOBGDkQy/vz6PWSr7B3WilhQKjyeQ==" + }, + "node_modules/bootstrap": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.3.tgz", + "integrity": "sha512-o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + }, + "peerDependencies": { + "jquery": "1.9.1 - 3", + "popper.js": "^1.16.1" + } + }, + "node_modules/html5shiv": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/html5shiv/-/html5shiv-3.7.3.tgz", + "integrity": "sha1-14qEo2e8uacQEA1XgCw4ewhGMdI=" + }, + "node_modules/jquery": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" + }, + "node_modules/justified-layout": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/justified-layout/-/justified-layout-3.0.0.tgz", + "integrity": "sha512-xki5bVJ84HokIV47mfHdmWB56zFrQKbtrU5KHA5GoatOnRwQWGOvNtBlbW8dU0yIa3pNmCPuacuuMRPvM9p5mg==", + "dependencies": { + "merge": "1.2.1" + } + }, + "node_modules/livereload-js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz", + "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==" + }, + "node_modules/luxon": { + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.25.0.tgz", + "integrity": "sha512-hEgLurSH8kQRjY6i4YLey+mcKVAWXbDNlZRmM6AgWDJ1cY3atl8Ztf5wEY7VBReFbmGnwQPz7KYJblL8B2k0jQ==", + "engines": { + "node": "*" + } + }, + "node_modules/merge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==" + }, + "node_modules/popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", + "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + } + } +} diff --git a/npm_assets/node_modules/bootstrap/README.md b/npm_assets/node_modules/bootstrap/README.md index 3497963114..35ce9feaac 100644 --- a/npm_assets/node_modules/bootstrap/README.md +++ b/npm_assets/node_modules/bootstrap/README.md @@ -41,11 +41,11 @@ Several quick start options are available: -- [Download the latest release.](https://github.com/twbs/bootstrap/archive/v4.5.2.zip) +- [Download the latest release.](https://github.com/twbs/bootstrap/archive/v4.5.3.zip) - Clone the repo: `git clone https://github.com/twbs/bootstrap.git` - Install with [npm](https://www.npmjs.com/): `npm install bootstrap` -- Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap@4.5.2` -- Install with [Composer](https://getcomposer.org/): `composer require twbs/bootstrap:4.5.2` +- Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap@4.5.3` +- Install with [Composer](https://getcomposer.org/): `composer require twbs/bootstrap:4.5.3` - Install with [NuGet](https://www.nuget.org/): CSS: `Install-Package bootstrap` Sass: `Install-Package bootstrap.sass` Read the [Getting started page](https://getbootstrap.com/docs/4.5/getting-started/introduction/) for information on the framework contents, templates and examples, and more. @@ -63,8 +63,8 @@ Read the [Getting started page](https://getbootstrap.com/docs/4.5/getting-starte [![peerDependencies Status](https://img.shields.io/david/peer/twbs/bootstrap)](https://david-dm.org/twbs/bootstrap?type=peer) [![devDependency Status](https://img.shields.io/david/dev/twbs/bootstrap)](https://david-dm.org/twbs/bootstrap?type=dev) [![Coverage Status](https://img.shields.io/coveralls/github/twbs/bootstrap/v4-dev)](https://coveralls.io/github/twbs/bootstrap?branch=v4-dev) -[![CSS gzip size](https://img.badgesize.io/twbs/bootstrap/v4-dev/dist/css/bootstrap.min.css?compression=gzip&label=CSS%20gzip%20size)](https://github.com/twbs/bootstrap/tree/v4-dev/dist/css/bootstrap.min.css) -[![JS gzip size](https://img.badgesize.io/twbs/bootstrap/v4-dev/dist/js/bootstrap.min.js?compression=gzip&label=JS%20gzip%20size)](https://github.com/twbs/bootstrap/tree/v4-dev/dist/js/bootstrap.min.js) +[![CSS gzip size](https://img.badgesize.io/twbs/bootstrap/v4-dev/dist/css/bootstrap.min.css?compression=gzip&label=CSS%20gzip%20size)](https://github.com/twbs/bootstrap/blob/v4-dev/dist/css/bootstrap.min.css) +[![JS gzip size](https://img.badgesize.io/twbs/bootstrap/v4-dev/dist/js/bootstrap.min.js?compression=gzip&label=JS%20gzip%20size)](https://github.com/twbs/bootstrap/blob/v4-dev/dist/js/bootstrap.min.js) [![BrowserStack Status](https://www.browserstack.com/automate/badge.svg?badge_key=SkxZcStBeExEdVJqQ2hWYnlWckpkNmNEY213SFp6WHFETWk2bGFuY3pCbz0tLXhqbHJsVlZhQnRBdEpod3NLSDMzaHc9PQ==--3d0b75245708616eb93113221beece33e680b229)](https://www.browserstack.com/automate/public-build/SkxZcStBeExEdVJqQ2hWYnlWckpkNmNEY213SFp6WHFETWk2bGFuY3pCbz0tLXhqbHJsVlZhQnRBdEpod3NLSDMzaHc9PQ==--3d0b75245708616eb93113221beece33e680b229) [![Backers on Open Collective](https://img.shields.io/opencollective/backers/bootstrap)](#backers) [![Sponsors on Open Collective](https://img.shields.io/opencollective/sponsors/bootstrap)](#sponsors) diff --git a/npm_assets/node_modules/bootstrap/dist/css/bootstrap-grid.css b/npm_assets/node_modules/bootstrap/dist/css/bootstrap-grid.css index a8c7d0746e..9cfa07ac50 100644 --- a/npm_assets/node_modules/bootstrap/dist/css/bootstrap-grid.css +++ b/npm_assets/node_modules/bootstrap/dist/css/bootstrap-grid.css @@ -1,5 +1,5 @@ /*! - * Bootstrap Grid v4.5.2 (https://getbootstrap.com/) + * Bootstrap Grid v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors * Copyright 2011-2020 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) diff --git a/npm_assets/node_modules/bootstrap/dist/css/bootstrap-grid.css.map b/npm_assets/node_modules/bootstrap/dist/css/bootstrap-grid.css.map index df1bed72d4..a664f9803a 100644 --- a/npm_assets/node_modules/bootstrap/dist/css/bootstrap-grid.css.map +++ b/npm_assets/node_modules/bootstrap/dist/css/bootstrap-grid.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../scss/bootstrap-grid.scss","bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_spacing.scss"],"names":[],"mappings":"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EKp0BM;IAAwB,iBADZ;IACY,QADZ;ELw0BlB;EKv0BM;IAAwB,iBADZ;IACY,QADZ;EL20BlB;EK10BM;IAAwB,kBADZ;IACY,SADZ;EL80BlB;EK70BM;IAAwB,kBADZ;IACY,SADZ;ELi1BlB;EKh1BM;IAAwB,kBADZ;IACY,SADZ;ELo1BlB;EK50BU;IHhBV,cAA4B;EF+1B5B;EK/0BU;IHhBV,sBAA8C;EFk2B9C;EKl1BU;IHhBV,uBAA8C;EFq2B9C;EKr1BU;IHhBV,gBAA8C;EFw2B9C;EKx1BU;IHhBV,uBAA8C;EF22B9C;EK31BU;IHhBV,uBAA8C;EF82B9C;EK91BU;IHhBV,gBAA8C;EFi3B9C;EKj2BU;IHhBV,uBAA8C;EFo3B9C;EKp2BU;IHhBV,uBAA8C;EFu3B9C;EKv2BU;IHhBV,gBAA8C;EF03B9C;EK12BU;IHhBV,uBAA8C;EF63B9C;EK72BU;IHhBV,uBAA8C;EFg4B9C;AACF;;AM76BM;EAAwB,wBAA0B;ANi7BxD;;AMj7BM;EAAwB,0BAA0B;ANq7BxD;;AMr7BM;EAAwB,gCAA0B;ANy7BxD;;AMz7BM;EAAwB,yBAA0B;AN67BxD;;AM77BM;EAAwB,yBAA0B;ANi8BxD;;AMj8BM;EAAwB,6BAA0B;ANq8BxD;;AMr8BM;EAAwB,8BAA0B;ANy8BxD;;AMz8BM;EAAwB,+BAA0B;EAA1B,wBAA0B;AN68BxD;;AM78BM;EAAwB,sCAA0B;EAA1B,+BAA0B;ANi9BxD;;AGh6BI;EGjDE;IAAwB,wBAA0B;ENs9BtD;EMt9BI;IAAwB,0BAA0B;ENy9BtD;EMz9BI;IAAwB,gCAA0B;EN49BtD;EM59BI;IAAwB,yBAA0B;EN+9BtD;EM/9BI;IAAwB,yBAA0B;ENk+BtD;EMl+BI;IAAwB,6BAA0B;ENq+BtD;EMr+BI;IAAwB,8BAA0B;ENw+BtD;EMx+BI;IAAwB,+BAA0B;IAA1B,wBAA0B;EN2+BtD;EM3+BI;IAAwB,sCAA0B;IAA1B,+BAA0B;EN8+BtD;AACF;;AG97BI;EGjDE;IAAwB,wBAA0B;ENo/BtD;EMp/BI;IAAwB,0BAA0B;ENu/BtD;EMv/BI;IAAwB,gCAA0B;EN0/BtD;EM1/BI;IAAwB,yBAA0B;EN6/BtD;EM7/BI;IAAwB,yBAA0B;ENggCtD;EMhgCI;IAAwB,6BAA0B;ENmgCtD;EMngCI;IAAwB,8BAA0B;ENsgCtD;EMtgCI;IAAwB,+BAA0B;IAA1B,wBAA0B;ENygCtD;EMzgCI;IAAwB,sCAA0B;IAA1B,+BAA0B;EN4gCtD;AACF;;AG59BI;EGjDE;IAAwB,wBAA0B;ENkhCtD;EMlhCI;IAAwB,0BAA0B;ENqhCtD;EMrhCI;IAAwB,gCAA0B;ENwhCtD;EMxhCI;IAAwB,yBAA0B;EN2hCtD;EM3hCI;IAAwB,yBAA0B;EN8hCtD;EM9hCI;IAAwB,6BAA0B;ENiiCtD;EMjiCI;IAAwB,8BAA0B;ENoiCtD;EMpiCI;IAAwB,+BAA0B;IAA1B,wBAA0B;ENuiCtD;EMviCI;IAAwB,sCAA0B;IAA1B,+BAA0B;EN0iCtD;AACF;;AG1/BI;EGjDE;IAAwB,wBAA0B;ENgjCtD;EMhjCI;IAAwB,0BAA0B;ENmjCtD;EMnjCI;IAAwB,gCAA0B;ENsjCtD;EMtjCI;IAAwB,yBAA0B;ENyjCtD;EMzjCI;IAAwB,yBAA0B;EN4jCtD;EM5jCI;IAAwB,6BAA0B;EN+jCtD;EM/jCI;IAAwB,8BAA0B;ENkkCtD;EMlkCI;IAAwB,+BAA0B;IAA1B,wBAA0B;ENqkCtD;EMrkCI;IAAwB,sCAA0B;IAA1B,+BAA0B;ENwkCtD;AACF;;AM/jCA;EAEI;IAAqB,wBAA0B;ENkkCjD;EMlkCE;IAAqB,0BAA0B;ENqkCjD;EMrkCE;IAAqB,gCAA0B;ENwkCjD;EMxkCE;IAAqB,yBAA0B;EN2kCjD;EM3kCE;IAAqB,yBAA0B;EN8kCjD;EM9kCE;IAAqB,6BAA0B;ENilCjD;EMjlCE;IAAqB,8BAA0B;ENolCjD;EMplCE;IAAqB,+BAA0B;IAA1B,wBAA0B;ENulCjD;EMvlCE;IAAqB,sCAA0B;IAA1B,+BAA0B;EN0lCjD;AACF;;AOxmCI;EAAgC,kCAA8B;EAA9B,8BAA8B;AP4mClE;;AO3mCI;EAAgC,qCAAiC;EAAjC,iCAAiC;AP+mCrE;;AO9mCI;EAAgC,0CAAsC;EAAtC,sCAAsC;APknC1E;;AOjnCI;EAAgC,6CAAyC;EAAzC,yCAAyC;APqnC7E;;AOnnCI;EAA8B,8BAA0B;EAA1B,0BAA0B;APunC5D;;AOtnCI;EAA8B,gCAA4B;EAA5B,4BAA4B;AP0nC9D;;AOznCI;EAA8B,sCAAkC;EAAlC,kCAAkC;AP6nCpE;;AO5nCI;EAA8B,6BAAyB;EAAzB,yBAAyB;APgoC3D;;AO/nCI;EAA8B,+BAAuB;EAAvB,uBAAuB;APmoCzD;;AOloCI;EAA8B,+BAAuB;EAAvB,uBAAuB;APsoCzD;;AOroCI;EAA8B,+BAAyB;EAAzB,yBAAyB;APyoC3D;;AOxoCI;EAA8B,+BAAyB;EAAzB,yBAAyB;AP4oC3D;;AO1oCI;EAAoC,+BAAsC;EAAtC,sCAAsC;AP8oC9E;;AO7oCI;EAAoC,6BAAoC;EAApC,oCAAoC;APipC5E;;AOhpCI;EAAoC,gCAAkC;EAAlC,kCAAkC;APopC1E;;AOnpCI;EAAoC,iCAAyC;EAAzC,yCAAyC;APupCjF;;AOtpCI;EAAoC,oCAAwC;EAAxC,wCAAwC;AP0pChF;;AOxpCI;EAAiC,gCAAkC;EAAlC,kCAAkC;AP4pCvE;;AO3pCI;EAAiC,8BAAgC;EAAhC,gCAAgC;AP+pCrE;;AO9pCI;EAAiC,iCAA8B;EAA9B,8BAA8B;APkqCnE;;AOjqCI;EAAiC,mCAAgC;EAAhC,gCAAgC;APqqCrE;;AOpqCI;EAAiC,kCAA+B;EAA/B,+BAA+B;APwqCpE;;AOtqCI;EAAkC,oCAAoC;EAApC,oCAAoC;AP0qC1E;;AOzqCI;EAAkC,kCAAkC;EAAlC,kCAAkC;AP6qCxE;;AO5qCI;EAAkC,qCAAgC;EAAhC,gCAAgC;APgrCtE;;AO/qCI;EAAkC,sCAAuC;EAAvC,uCAAuC;APmrC7E;;AOlrCI;EAAkC,yCAAsC;EAAtC,sCAAsC;APsrC5E;;AOrrCI;EAAkC,sCAAiC;EAAjC,iCAAiC;APyrCvE;;AOvrCI;EAAgC,oCAA2B;EAA3B,2BAA2B;AP2rC/D;;AO1rCI;EAAgC,qCAAiC;EAAjC,iCAAiC;AP8rCrE;;AO7rCI;EAAgC,mCAA+B;EAA/B,+BAA+B;APisCnE;;AOhsCI;EAAgC,sCAA6B;EAA7B,6BAA6B;APosCjE;;AOnsCI;EAAgC,wCAA+B;EAA/B,+BAA+B;APusCnE;;AOtsCI;EAAgC,uCAA8B;EAA9B,8BAA8B;AP0sClE;;AG9rCI;EIlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;EPqvChE;EOpvCE;IAAgC,qCAAiC;IAAjC,iCAAiC;EPuvCnE;EOtvCE;IAAgC,0CAAsC;IAAtC,sCAAsC;EPyvCxE;EOxvCE;IAAgC,6CAAyC;IAAzC,yCAAyC;EP2vC3E;EOzvCE;IAA8B,8BAA0B;IAA1B,0BAA0B;EP4vC1D;EO3vCE;IAA8B,gCAA4B;IAA5B,4BAA4B;EP8vC5D;EO7vCE;IAA8B,sCAAkC;IAAlC,kCAAkC;EPgwClE;EO/vCE;IAA8B,6BAAyB;IAAzB,yBAAyB;EPkwCzD;EOjwCE;IAA8B,+BAAuB;IAAvB,uBAAuB;EPowCvD;EOnwCE;IAA8B,+BAAuB;IAAvB,uBAAuB;EPswCvD;EOrwCE;IAA8B,+BAAyB;IAAzB,yBAAyB;EPwwCzD;EOvwCE;IAA8B,+BAAyB;IAAzB,yBAAyB;EP0wCzD;EOxwCE;IAAoC,+BAAsC;IAAtC,sCAAsC;EP2wC5E;EO1wCE;IAAoC,6BAAoC;IAApC,oCAAoC;EP6wC1E;EO5wCE;IAAoC,gCAAkC;IAAlC,kCAAkC;EP+wCxE;EO9wCE;IAAoC,iCAAyC;IAAzC,yCAAyC;EPixC/E;EOhxCE;IAAoC,oCAAwC;IAAxC,wCAAwC;EPmxC9E;EOjxCE;IAAiC,gCAAkC;IAAlC,kCAAkC;EPoxCrE;EOnxCE;IAAiC,8BAAgC;IAAhC,gCAAgC;EPsxCnE;EOrxCE;IAAiC,iCAA8B;IAA9B,8BAA8B;EPwxCjE;EOvxCE;IAAiC,mCAAgC;IAAhC,gCAAgC;EP0xCnE;EOzxCE;IAAiC,kCAA+B;IAA/B,+BAA+B;EP4xClE;EO1xCE;IAAkC,oCAAoC;IAApC,oCAAoC;EP6xCxE;EO5xCE;IAAkC,kCAAkC;IAAlC,kCAAkC;EP+xCtE;EO9xCE;IAAkC,qCAAgC;IAAhC,gCAAgC;EPiyCpE;EOhyCE;IAAkC,sCAAuC;IAAvC,uCAAuC;EPmyC3E;EOlyCE;IAAkC,yCAAsC;IAAtC,sCAAsC;EPqyC1E;EOpyCE;IAAkC,sCAAiC;IAAjC,iCAAiC;EPuyCrE;EOryCE;IAAgC,oCAA2B;IAA3B,2BAA2B;EPwyC7D;EOvyCE;IAAgC,qCAAiC;IAAjC,iCAAiC;EP0yCnE;EOzyCE;IAAgC,mCAA+B;IAA/B,+BAA+B;EP4yCjE;EO3yCE;IAAgC,sCAA6B;IAA7B,6BAA6B;EP8yC/D;EO7yCE;IAAgC,wCAA+B;IAA/B,+BAA+B;EPgzCjE;EO/yCE;IAAgC,uCAA8B;IAA9B,8BAA8B;EPkzChE;AACF;;AGvyCI;EIlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;EP81ChE;EO71CE;IAAgC,qCAAiC;IAAjC,iCAAiC;EPg2CnE;EO/1CE;IAAgC,0CAAsC;IAAtC,sCAAsC;EPk2CxE;EOj2CE;IAAgC,6CAAyC;IAAzC,yCAAyC;EPo2C3E;EOl2CE;IAA8B,8BAA0B;IAA1B,0BAA0B;EPq2C1D;EOp2CE;IAA8B,gCAA4B;IAA5B,4BAA4B;EPu2C5D;EOt2CE;IAA8B,sCAAkC;IAAlC,kCAAkC;EPy2ClE;EOx2CE;IAA8B,6BAAyB;IAAzB,yBAAyB;EP22CzD;EO12CE;IAA8B,+BAAuB;IAAvB,uBAAuB;EP62CvD;EO52CE;IAA8B,+BAAuB;IAAvB,uBAAuB;EP+2CvD;EO92CE;IAA8B,+BAAyB;IAAzB,yBAAyB;EPi3CzD;EOh3CE;IAA8B,+BAAyB;IAAzB,yBAAyB;EPm3CzD;EOj3CE;IAAoC,+BAAsC;IAAtC,sCAAsC;EPo3C5E;EOn3CE;IAAoC,6BAAoC;IAApC,oCAAoC;EPs3C1E;EOr3CE;IAAoC,gCAAkC;IAAlC,kCAAkC;EPw3CxE;EOv3CE;IAAoC,iCAAyC;IAAzC,yCAAyC;EP03C/E;EOz3CE;IAAoC,oCAAwC;IAAxC,wCAAwC;EP43C9E;EO13CE;IAAiC,gCAAkC;IAAlC,kCAAkC;EP63CrE;EO53CE;IAAiC,8BAAgC;IAAhC,gCAAgC;EP+3CnE;EO93CE;IAAiC,iCAA8B;IAA9B,8BAA8B;EPi4CjE;EOh4CE;IAAiC,mCAAgC;IAAhC,gCAAgC;EPm4CnE;EOl4CE;IAAiC,kCAA+B;IAA/B,+BAA+B;EPq4ClE;EOn4CE;IAAkC,oCAAoC;IAApC,oCAAoC;EPs4CxE;EOr4CE;IAAkC,kCAAkC;IAAlC,kCAAkC;EPw4CtE;EOv4CE;IAAkC,qCAAgC;IAAhC,gCAAgC;EP04CpE;EOz4CE;IAAkC,sCAAuC;IAAvC,uCAAuC;EP44C3E;EO34CE;IAAkC,yCAAsC;IAAtC,sCAAsC;EP84C1E;EO74CE;IAAkC,sCAAiC;IAAjC,iCAAiC;EPg5CrE;EO94CE;IAAgC,oCAA2B;IAA3B,2BAA2B;EPi5C7D;EOh5CE;IAAgC,qCAAiC;IAAjC,iCAAiC;EPm5CnE;EOl5CE;IAAgC,mCAA+B;IAA/B,+BAA+B;EPq5CjE;EOp5CE;IAAgC,sCAA6B;IAA7B,6BAA6B;EPu5C/D;EOt5CE;IAAgC,wCAA+B;IAA/B,+BAA+B;EPy5CjE;EOx5CE;IAAgC,uCAA8B;IAA9B,8BAA8B;EP25ChE;AACF;;AGh5CI;EIlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;EPu8ChE;EOt8CE;IAAgC,qCAAiC;IAAjC,iCAAiC;EPy8CnE;EOx8CE;IAAgC,0CAAsC;IAAtC,sCAAsC;EP28CxE;EO18CE;IAAgC,6CAAyC;IAAzC,yCAAyC;EP68C3E;EO38CE;IAA8B,8BAA0B;IAA1B,0BAA0B;EP88C1D;EO78CE;IAA8B,gCAA4B;IAA5B,4BAA4B;EPg9C5D;EO/8CE;IAA8B,sCAAkC;IAAlC,kCAAkC;EPk9ClE;EOj9CE;IAA8B,6BAAyB;IAAzB,yBAAyB;EPo9CzD;EOn9CE;IAA8B,+BAAuB;IAAvB,uBAAuB;EPs9CvD;EOr9CE;IAA8B,+BAAuB;IAAvB,uBAAuB;EPw9CvD;EOv9CE;IAA8B,+BAAyB;IAAzB,yBAAyB;EP09CzD;EOz9CE;IAA8B,+BAAyB;IAAzB,yBAAyB;EP49CzD;EO19CE;IAAoC,+BAAsC;IAAtC,sCAAsC;EP69C5E;EO59CE;IAAoC,6BAAoC;IAApC,oCAAoC;EP+9C1E;EO99CE;IAAoC,gCAAkC;IAAlC,kCAAkC;EPi+CxE;EOh+CE;IAAoC,iCAAyC;IAAzC,yCAAyC;EPm+C/E;EOl+CE;IAAoC,oCAAwC;IAAxC,wCAAwC;EPq+C9E;EOn+CE;IAAiC,gCAAkC;IAAlC,kCAAkC;EPs+CrE;EOr+CE;IAAiC,8BAAgC;IAAhC,gCAAgC;EPw+CnE;EOv+CE;IAAiC,iCAA8B;IAA9B,8BAA8B;EP0+CjE;EOz+CE;IAAiC,mCAAgC;IAAhC,gCAAgC;EP4+CnE;EO3+CE;IAAiC,kCAA+B;IAA/B,+BAA+B;EP8+ClE;EO5+CE;IAAkC,oCAAoC;IAApC,oCAAoC;EP++CxE;EO9+CE;IAAkC,kCAAkC;IAAlC,kCAAkC;EPi/CtE;EOh/CE;IAAkC,qCAAgC;IAAhC,gCAAgC;EPm/CpE;EOl/CE;IAAkC,sCAAuC;IAAvC,uCAAuC;EPq/C3E;EOp/CE;IAAkC,yCAAsC;IAAtC,sCAAsC;EPu/C1E;EOt/CE;IAAkC,sCAAiC;IAAjC,iCAAiC;EPy/CrE;EOv/CE;IAAgC,oCAA2B;IAA3B,2BAA2B;EP0/C7D;EOz/CE;IAAgC,qCAAiC;IAAjC,iCAAiC;EP4/CnE;EO3/CE;IAAgC,mCAA+B;IAA/B,+BAA+B;EP8/CjE;EO7/CE;IAAgC,sCAA6B;IAA7B,6BAA6B;EPggD/D;EO//CE;IAAgC,wCAA+B;IAA/B,+BAA+B;EPkgDjE;EOjgDE;IAAgC,uCAA8B;IAA9B,8BAA8B;EPogDhE;AACF;;AGz/CI;EIlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;EPgjDhE;EO/iDE;IAAgC,qCAAiC;IAAjC,iCAAiC;EPkjDnE;EOjjDE;IAAgC,0CAAsC;IAAtC,sCAAsC;EPojDxE;EOnjDE;IAAgC,6CAAyC;IAAzC,yCAAyC;EPsjD3E;EOpjDE;IAA8B,8BAA0B;IAA1B,0BAA0B;EPujD1D;EOtjDE;IAA8B,gCAA4B;IAA5B,4BAA4B;EPyjD5D;EOxjDE;IAA8B,sCAAkC;IAAlC,kCAAkC;EP2jDlE;EO1jDE;IAA8B,6BAAyB;IAAzB,yBAAyB;EP6jDzD;EO5jDE;IAA8B,+BAAuB;IAAvB,uBAAuB;EP+jDvD;EO9jDE;IAA8B,+BAAuB;IAAvB,uBAAuB;EPikDvD;EOhkDE;IAA8B,+BAAyB;IAAzB,yBAAyB;EPmkDzD;EOlkDE;IAA8B,+BAAyB;IAAzB,yBAAyB;EPqkDzD;EOnkDE;IAAoC,+BAAsC;IAAtC,sCAAsC;EPskD5E;EOrkDE;IAAoC,6BAAoC;IAApC,oCAAoC;EPwkD1E;EOvkDE;IAAoC,gCAAkC;IAAlC,kCAAkC;EP0kDxE;EOzkDE;IAAoC,iCAAyC;IAAzC,yCAAyC;EP4kD/E;EO3kDE;IAAoC,oCAAwC;IAAxC,wCAAwC;EP8kD9E;EO5kDE;IAAiC,gCAAkC;IAAlC,kCAAkC;EP+kDrE;EO9kDE;IAAiC,8BAAgC;IAAhC,gCAAgC;EPilDnE;EOhlDE;IAAiC,iCAA8B;IAA9B,8BAA8B;EPmlDjE;EOllDE;IAAiC,mCAAgC;IAAhC,gCAAgC;EPqlDnE;EOplDE;IAAiC,kCAA+B;IAA/B,+BAA+B;EPulDlE;EOrlDE;IAAkC,oCAAoC;IAApC,oCAAoC;EPwlDxE;EOvlDE;IAAkC,kCAAkC;IAAlC,kCAAkC;EP0lDtE;EOzlDE;IAAkC,qCAAgC;IAAhC,gCAAgC;EP4lDpE;EO3lDE;IAAkC,sCAAuC;IAAvC,uCAAuC;EP8lD3E;EO7lDE;IAAkC,yCAAsC;IAAtC,sCAAsC;EPgmD1E;EO/lDE;IAAkC,sCAAiC;IAAjC,iCAAiC;EPkmDrE;EOhmDE;IAAgC,oCAA2B;IAA3B,2BAA2B;EPmmD7D;EOlmDE;IAAgC,qCAAiC;IAAjC,iCAAiC;EPqmDnE;EOpmDE;IAAgC,mCAA+B;IAA/B,+BAA+B;EPumDjE;EOtmDE;IAAgC,sCAA6B;IAA7B,6BAA6B;EPymD/D;EOxmDE;IAAgC,wCAA+B;IAA/B,+BAA+B;EP2mDjE;EO1mDE;IAAgC,uCAA8B;IAA9B,8BAA8B;EP6mDhE;AACF;;AQppDQ;EAAgC,oBAA4B;ARwpDpE;;AQvpDQ;;EAEE,wBAAoC;AR0pD9C;;AQxpDQ;;EAEE,0BAAwC;AR2pDlD;;AQzpDQ;;EAEE,2BAA0C;AR4pDpD;;AQ1pDQ;;EAEE,yBAAsC;AR6pDhD;;AQ5qDQ;EAAgC,0BAA4B;ARgrDpE;;AQ/qDQ;;EAEE,8BAAoC;ARkrD9C;;AQhrDQ;;EAEE,gCAAwC;ARmrDlD;;AQjrDQ;;EAEE,iCAA0C;ARorDpD;;AQlrDQ;;EAEE,+BAAsC;ARqrDhD;;AQpsDQ;EAAgC,yBAA4B;ARwsDpE;;AQvsDQ;;EAEE,6BAAoC;AR0sD9C;;AQxsDQ;;EAEE,+BAAwC;AR2sDlD;;AQzsDQ;;EAEE,gCAA0C;AR4sDpD;;AQ1sDQ;;EAEE,8BAAsC;AR6sDhD;;AQ5tDQ;EAAgC,uBAA4B;ARguDpE;;AQ/tDQ;;EAEE,2BAAoC;ARkuD9C;;AQhuDQ;;EAEE,6BAAwC;ARmuDlD;;AQjuDQ;;EAEE,8BAA0C;ARouDpD;;AQluDQ;;EAEE,4BAAsC;ARquDhD;;AQpvDQ;EAAgC,yBAA4B;ARwvDpE;;AQvvDQ;;EAEE,6BAAoC;AR0vD9C;;AQxvDQ;;EAEE,+BAAwC;AR2vDlD;;AQzvDQ;;EAEE,gCAA0C;AR4vDpD;;AQ1vDQ;;EAEE,8BAAsC;AR6vDhD;;AQ5wDQ;EAAgC,uBAA4B;ARgxDpE;;AQ/wDQ;;EAEE,2BAAoC;ARkxD9C;;AQhxDQ;;EAEE,6BAAwC;ARmxDlD;;AQjxDQ;;EAEE,8BAA0C;ARoxDpD;;AQlxDQ;;EAEE,4BAAsC;ARqxDhD;;AQpyDQ;EAAgC,qBAA4B;ARwyDpE;;AQvyDQ;;EAEE,yBAAoC;AR0yD9C;;AQxyDQ;;EAEE,2BAAwC;AR2yDlD;;AQzyDQ;;EAEE,4BAA0C;AR4yDpD;;AQ1yDQ;;EAEE,0BAAsC;AR6yDhD;;AQ5zDQ;EAAgC,2BAA4B;ARg0DpE;;AQ/zDQ;;EAEE,+BAAoC;ARk0D9C;;AQh0DQ;;EAEE,iCAAwC;ARm0DlD;;AQj0DQ;;EAEE,kCAA0C;ARo0DpD;;AQl0DQ;;EAEE,gCAAsC;ARq0DhD;;AQp1DQ;EAAgC,0BAA4B;ARw1DpE;;AQv1DQ;;EAEE,8BAAoC;AR01D9C;;AQx1DQ;;EAEE,gCAAwC;AR21DlD;;AQz1DQ;;EAEE,iCAA0C;AR41DpD;;AQ11DQ;;EAEE,+BAAsC;AR61DhD;;AQ52DQ;EAAgC,wBAA4B;ARg3DpE;;AQ/2DQ;;EAEE,4BAAoC;ARk3D9C;;AQh3DQ;;EAEE,8BAAwC;ARm3DlD;;AQj3DQ;;EAEE,+BAA0C;ARo3DpD;;AQl3DQ;;EAEE,6BAAsC;ARq3DhD;;AQp4DQ;EAAgC,0BAA4B;ARw4DpE;;AQv4DQ;;EAEE,8BAAoC;AR04D9C;;AQx4DQ;;EAEE,gCAAwC;AR24DlD;;AQz4DQ;;EAEE,iCAA0C;AR44DpD;;AQ14DQ;;EAEE,+BAAsC;AR64DhD;;AQ55DQ;EAAgC,wBAA4B;ARg6DpE;;AQ/5DQ;;EAEE,4BAAoC;ARk6D9C;;AQh6DQ;;EAEE,8BAAwC;ARm6DlD;;AQj6DQ;;EAEE,+BAA0C;ARo6DpD;;AQl6DQ;;EAEE,6BAAsC;ARq6DhD;;AQ75DQ;EAAwB,2BAA2B;ARi6D3D;;AQh6DQ;;EAEE,+BAA+B;ARm6DzC;;AQj6DQ;;EAEE,iCAAiC;ARo6D3C;;AQl6DQ;;EAEE,kCAAkC;ARq6D5C;;AQn6DQ;;EAEE,gCAAgC;ARs6D1C;;AQr7DQ;EAAwB,0BAA2B;ARy7D3D;;AQx7DQ;;EAEE,8BAA+B;AR27DzC;;AQz7DQ;;EAEE,gCAAiC;AR47D3C;;AQ17DQ;;EAEE,iCAAkC;AR67D5C;;AQ37DQ;;EAEE,+BAAgC;AR87D1C;;AQ78DQ;EAAwB,wBAA2B;ARi9D3D;;AQh9DQ;;EAEE,4BAA+B;ARm9DzC;;AQj9DQ;;EAEE,8BAAiC;ARo9D3C;;AQl9DQ;;EAEE,+BAAkC;ARq9D5C;;AQn9DQ;;EAEE,6BAAgC;ARs9D1C;;AQr+DQ;EAAwB,0BAA2B;ARy+D3D;;AQx+DQ;;EAEE,8BAA+B;AR2+DzC;;AQz+DQ;;EAEE,gCAAiC;AR4+D3C;;AQ1+DQ;;EAEE,iCAAkC;AR6+D5C;;AQ3+DQ;;EAEE,+BAAgC;AR8+D1C;;AQ7/DQ;EAAwB,wBAA2B;ARigE3D;;AQhgEQ;;EAEE,4BAA+B;ARmgEzC;;AQjgEQ;;EAEE,8BAAiC;ARogE3C;;AQlgEQ;;EAEE,+BAAkC;ARqgE5C;;AQngEQ;;EAEE,6BAAgC;ARsgE1C;;AQhgEI;EAAmB,uBAAuB;ARogE9C;;AQngEI;;EAEE,2BAA2B;ARsgEjC;;AQpgEI;;EAEE,6BAA6B;ARugEnC;;AQrgEI;;EAEE,8BAA8B;ARwgEpC;;AQtgEI;;EAEE,4BAA4B;ARygElC;;AGlhEI;EKlDI;IAAgC,oBAA4B;ERykElE;EQxkEM;;IAEE,wBAAoC;ER0kE5C;EQxkEM;;IAEE,0BAAwC;ER0kEhD;EQxkEM;;IAEE,2BAA0C;ER0kElD;EQxkEM;;IAEE,yBAAsC;ER0kE9C;EQzlEM;IAAgC,0BAA4B;ER4lElE;EQ3lEM;;IAEE,8BAAoC;ER6lE5C;EQ3lEM;;IAEE,gCAAwC;ER6lEhD;EQ3lEM;;IAEE,iCAA0C;ER6lElD;EQ3lEM;;IAEE,+BAAsC;ER6lE9C;EQ5mEM;IAAgC,yBAA4B;ER+mElE;EQ9mEM;;IAEE,6BAAoC;ERgnE5C;EQ9mEM;;IAEE,+BAAwC;ERgnEhD;EQ9mEM;;IAEE,gCAA0C;ERgnElD;EQ9mEM;;IAEE,8BAAsC;ERgnE9C;EQ/nEM;IAAgC,uBAA4B;ERkoElE;EQjoEM;;IAEE,2BAAoC;ERmoE5C;EQjoEM;;IAEE,6BAAwC;ERmoEhD;EQjoEM;;IAEE,8BAA0C;ERmoElD;EQjoEM;;IAEE,4BAAsC;ERmoE9C;EQlpEM;IAAgC,yBAA4B;ERqpElE;EQppEM;;IAEE,6BAAoC;ERspE5C;EQppEM;;IAEE,+BAAwC;ERspEhD;EQppEM;;IAEE,gCAA0C;ERspElD;EQppEM;;IAEE,8BAAsC;ERspE9C;EQrqEM;IAAgC,uBAA4B;ERwqElE;EQvqEM;;IAEE,2BAAoC;ERyqE5C;EQvqEM;;IAEE,6BAAwC;ERyqEhD;EQvqEM;;IAEE,8BAA0C;ERyqElD;EQvqEM;;IAEE,4BAAsC;ERyqE9C;EQxrEM;IAAgC,qBAA4B;ER2rElE;EQ1rEM;;IAEE,yBAAoC;ER4rE5C;EQ1rEM;;IAEE,2BAAwC;ER4rEhD;EQ1rEM;;IAEE,4BAA0C;ER4rElD;EQ1rEM;;IAEE,0BAAsC;ER4rE9C;EQ3sEM;IAAgC,2BAA4B;ER8sElE;EQ7sEM;;IAEE,+BAAoC;ER+sE5C;EQ7sEM;;IAEE,iCAAwC;ER+sEhD;EQ7sEM;;IAEE,kCAA0C;ER+sElD;EQ7sEM;;IAEE,gCAAsC;ER+sE9C;EQ9tEM;IAAgC,0BAA4B;ERiuElE;EQhuEM;;IAEE,8BAAoC;ERkuE5C;EQhuEM;;IAEE,gCAAwC;ERkuEhD;EQhuEM;;IAEE,iCAA0C;ERkuElD;EQhuEM;;IAEE,+BAAsC;ERkuE9C;EQjvEM;IAAgC,wBAA4B;ERovElE;EQnvEM;;IAEE,4BAAoC;ERqvE5C;EQnvEM;;IAEE,8BAAwC;ERqvEhD;EQnvEM;;IAEE,+BAA0C;ERqvElD;EQnvEM;;IAEE,6BAAsC;ERqvE9C;EQpwEM;IAAgC,0BAA4B;ERuwElE;EQtwEM;;IAEE,8BAAoC;ERwwE5C;EQtwEM;;IAEE,gCAAwC;ERwwEhD;EQtwEM;;IAEE,iCAA0C;ERwwElD;EQtwEM;;IAEE,+BAAsC;ERwwE9C;EQvxEM;IAAgC,wBAA4B;ER0xElE;EQzxEM;;IAEE,4BAAoC;ER2xE5C;EQzxEM;;IAEE,8BAAwC;ER2xEhD;EQzxEM;;IAEE,+BAA0C;ER2xElD;EQzxEM;;IAEE,6BAAsC;ER2xE9C;EQnxEM;IAAwB,2BAA2B;ERsxEzD;EQrxEM;;IAEE,+BAA+B;ERuxEvC;EQrxEM;;IAEE,iCAAiC;ERuxEzC;EQrxEM;;IAEE,kCAAkC;ERuxE1C;EQrxEM;;IAEE,gCAAgC;ERuxExC;EQtyEM;IAAwB,0BAA2B;ERyyEzD;EQxyEM;;IAEE,8BAA+B;ER0yEvC;EQxyEM;;IAEE,gCAAiC;ER0yEzC;EQxyEM;;IAEE,iCAAkC;ER0yE1C;EQxyEM;;IAEE,+BAAgC;ER0yExC;EQzzEM;IAAwB,wBAA2B;ER4zEzD;EQ3zEM;;IAEE,4BAA+B;ER6zEvC;EQ3zEM;;IAEE,8BAAiC;ER6zEzC;EQ3zEM;;IAEE,+BAAkC;ER6zE1C;EQ3zEM;;IAEE,6BAAgC;ER6zExC;EQ50EM;IAAwB,0BAA2B;ER+0EzD;EQ90EM;;IAEE,8BAA+B;ERg1EvC;EQ90EM;;IAEE,gCAAiC;ERg1EzC;EQ90EM;;IAEE,iCAAkC;ERg1E1C;EQ90EM;;IAEE,+BAAgC;ERg1ExC;EQ/1EM;IAAwB,wBAA2B;ERk2EzD;EQj2EM;;IAEE,4BAA+B;ERm2EvC;EQj2EM;;IAEE,8BAAiC;ERm2EzC;EQj2EM;;IAEE,+BAAkC;ERm2E1C;EQj2EM;;IAEE,6BAAgC;ERm2ExC;EQ71EE;IAAmB,uBAAuB;ERg2E5C;EQ/1EE;;IAEE,2BAA2B;ERi2E/B;EQ/1EE;;IAEE,6BAA6B;ERi2EjC;EQ/1EE;;IAEE,8BAA8B;ERi2ElC;EQ/1EE;;IAEE,4BAA4B;ERi2EhC;AACF;;AG32EI;EKlDI;IAAgC,oBAA4B;ERk6ElE;EQj6EM;;IAEE,wBAAoC;ERm6E5C;EQj6EM;;IAEE,0BAAwC;ERm6EhD;EQj6EM;;IAEE,2BAA0C;ERm6ElD;EQj6EM;;IAEE,yBAAsC;ERm6E9C;EQl7EM;IAAgC,0BAA4B;ERq7ElE;EQp7EM;;IAEE,8BAAoC;ERs7E5C;EQp7EM;;IAEE,gCAAwC;ERs7EhD;EQp7EM;;IAEE,iCAA0C;ERs7ElD;EQp7EM;;IAEE,+BAAsC;ERs7E9C;EQr8EM;IAAgC,yBAA4B;ERw8ElE;EQv8EM;;IAEE,6BAAoC;ERy8E5C;EQv8EM;;IAEE,+BAAwC;ERy8EhD;EQv8EM;;IAEE,gCAA0C;ERy8ElD;EQv8EM;;IAEE,8BAAsC;ERy8E9C;EQx9EM;IAAgC,uBAA4B;ER29ElE;EQ19EM;;IAEE,2BAAoC;ER49E5C;EQ19EM;;IAEE,6BAAwC;ER49EhD;EQ19EM;;IAEE,8BAA0C;ER49ElD;EQ19EM;;IAEE,4BAAsC;ER49E9C;EQ3+EM;IAAgC,yBAA4B;ER8+ElE;EQ7+EM;;IAEE,6BAAoC;ER++E5C;EQ7+EM;;IAEE,+BAAwC;ER++EhD;EQ7+EM;;IAEE,gCAA0C;ER++ElD;EQ7+EM;;IAEE,8BAAsC;ER++E9C;EQ9/EM;IAAgC,uBAA4B;ERigFlE;EQhgFM;;IAEE,2BAAoC;ERkgF5C;EQhgFM;;IAEE,6BAAwC;ERkgFhD;EQhgFM;;IAEE,8BAA0C;ERkgFlD;EQhgFM;;IAEE,4BAAsC;ERkgF9C;EQjhFM;IAAgC,qBAA4B;ERohFlE;EQnhFM;;IAEE,yBAAoC;ERqhF5C;EQnhFM;;IAEE,2BAAwC;ERqhFhD;EQnhFM;;IAEE,4BAA0C;ERqhFlD;EQnhFM;;IAEE,0BAAsC;ERqhF9C;EQpiFM;IAAgC,2BAA4B;ERuiFlE;EQtiFM;;IAEE,+BAAoC;ERwiF5C;EQtiFM;;IAEE,iCAAwC;ERwiFhD;EQtiFM;;IAEE,kCAA0C;ERwiFlD;EQtiFM;;IAEE,gCAAsC;ERwiF9C;EQvjFM;IAAgC,0BAA4B;ER0jFlE;EQzjFM;;IAEE,8BAAoC;ER2jF5C;EQzjFM;;IAEE,gCAAwC;ER2jFhD;EQzjFM;;IAEE,iCAA0C;ER2jFlD;EQzjFM;;IAEE,+BAAsC;ER2jF9C;EQ1kFM;IAAgC,wBAA4B;ER6kFlE;EQ5kFM;;IAEE,4BAAoC;ER8kF5C;EQ5kFM;;IAEE,8BAAwC;ER8kFhD;EQ5kFM;;IAEE,+BAA0C;ER8kFlD;EQ5kFM;;IAEE,6BAAsC;ER8kF9C;EQ7lFM;IAAgC,0BAA4B;ERgmFlE;EQ/lFM;;IAEE,8BAAoC;ERimF5C;EQ/lFM;;IAEE,gCAAwC;ERimFhD;EQ/lFM;;IAEE,iCAA0C;ERimFlD;EQ/lFM;;IAEE,+BAAsC;ERimF9C;EQhnFM;IAAgC,wBAA4B;ERmnFlE;EQlnFM;;IAEE,4BAAoC;ERonF5C;EQlnFM;;IAEE,8BAAwC;ERonFhD;EQlnFM;;IAEE,+BAA0C;ERonFlD;EQlnFM;;IAEE,6BAAsC;ERonF9C;EQ5mFM;IAAwB,2BAA2B;ER+mFzD;EQ9mFM;;IAEE,+BAA+B;ERgnFvC;EQ9mFM;;IAEE,iCAAiC;ERgnFzC;EQ9mFM;;IAEE,kCAAkC;ERgnF1C;EQ9mFM;;IAEE,gCAAgC;ERgnFxC;EQ/nFM;IAAwB,0BAA2B;ERkoFzD;EQjoFM;;IAEE,8BAA+B;ERmoFvC;EQjoFM;;IAEE,gCAAiC;ERmoFzC;EQjoFM;;IAEE,iCAAkC;ERmoF1C;EQjoFM;;IAEE,+BAAgC;ERmoFxC;EQlpFM;IAAwB,wBAA2B;ERqpFzD;EQppFM;;IAEE,4BAA+B;ERspFvC;EQppFM;;IAEE,8BAAiC;ERspFzC;EQppFM;;IAEE,+BAAkC;ERspF1C;EQppFM;;IAEE,6BAAgC;ERspFxC;EQrqFM;IAAwB,0BAA2B;ERwqFzD;EQvqFM;;IAEE,8BAA+B;ERyqFvC;EQvqFM;;IAEE,gCAAiC;ERyqFzC;EQvqFM;;IAEE,iCAAkC;ERyqF1C;EQvqFM;;IAEE,+BAAgC;ERyqFxC;EQxrFM;IAAwB,wBAA2B;ER2rFzD;EQ1rFM;;IAEE,4BAA+B;ER4rFvC;EQ1rFM;;IAEE,8BAAiC;ER4rFzC;EQ1rFM;;IAEE,+BAAkC;ER4rF1C;EQ1rFM;;IAEE,6BAAgC;ER4rFxC;EQtrFE;IAAmB,uBAAuB;ERyrF5C;EQxrFE;;IAEE,2BAA2B;ER0rF/B;EQxrFE;;IAEE,6BAA6B;ER0rFjC;EQxrFE;;IAEE,8BAA8B;ER0rFlC;EQxrFE;;IAEE,4BAA4B;ER0rFhC;AACF;;AGpsFI;EKlDI;IAAgC,oBAA4B;ER2vFlE;EQ1vFM;;IAEE,wBAAoC;ER4vF5C;EQ1vFM;;IAEE,0BAAwC;ER4vFhD;EQ1vFM;;IAEE,2BAA0C;ER4vFlD;EQ1vFM;;IAEE,yBAAsC;ER4vF9C;EQ3wFM;IAAgC,0BAA4B;ER8wFlE;EQ7wFM;;IAEE,8BAAoC;ER+wF5C;EQ7wFM;;IAEE,gCAAwC;ER+wFhD;EQ7wFM;;IAEE,iCAA0C;ER+wFlD;EQ7wFM;;IAEE,+BAAsC;ER+wF9C;EQ9xFM;IAAgC,yBAA4B;ERiyFlE;EQhyFM;;IAEE,6BAAoC;ERkyF5C;EQhyFM;;IAEE,+BAAwC;ERkyFhD;EQhyFM;;IAEE,gCAA0C;ERkyFlD;EQhyFM;;IAEE,8BAAsC;ERkyF9C;EQjzFM;IAAgC,uBAA4B;ERozFlE;EQnzFM;;IAEE,2BAAoC;ERqzF5C;EQnzFM;;IAEE,6BAAwC;ERqzFhD;EQnzFM;;IAEE,8BAA0C;ERqzFlD;EQnzFM;;IAEE,4BAAsC;ERqzF9C;EQp0FM;IAAgC,yBAA4B;ERu0FlE;EQt0FM;;IAEE,6BAAoC;ERw0F5C;EQt0FM;;IAEE,+BAAwC;ERw0FhD;EQt0FM;;IAEE,gCAA0C;ERw0FlD;EQt0FM;;IAEE,8BAAsC;ERw0F9C;EQv1FM;IAAgC,uBAA4B;ER01FlE;EQz1FM;;IAEE,2BAAoC;ER21F5C;EQz1FM;;IAEE,6BAAwC;ER21FhD;EQz1FM;;IAEE,8BAA0C;ER21FlD;EQz1FM;;IAEE,4BAAsC;ER21F9C;EQ12FM;IAAgC,qBAA4B;ER62FlE;EQ52FM;;IAEE,yBAAoC;ER82F5C;EQ52FM;;IAEE,2BAAwC;ER82FhD;EQ52FM;;IAEE,4BAA0C;ER82FlD;EQ52FM;;IAEE,0BAAsC;ER82F9C;EQ73FM;IAAgC,2BAA4B;ERg4FlE;EQ/3FM;;IAEE,+BAAoC;ERi4F5C;EQ/3FM;;IAEE,iCAAwC;ERi4FhD;EQ/3FM;;IAEE,kCAA0C;ERi4FlD;EQ/3FM;;IAEE,gCAAsC;ERi4F9C;EQh5FM;IAAgC,0BAA4B;ERm5FlE;EQl5FM;;IAEE,8BAAoC;ERo5F5C;EQl5FM;;IAEE,gCAAwC;ERo5FhD;EQl5FM;;IAEE,iCAA0C;ERo5FlD;EQl5FM;;IAEE,+BAAsC;ERo5F9C;EQn6FM;IAAgC,wBAA4B;ERs6FlE;EQr6FM;;IAEE,4BAAoC;ERu6F5C;EQr6FM;;IAEE,8BAAwC;ERu6FhD;EQr6FM;;IAEE,+BAA0C;ERu6FlD;EQr6FM;;IAEE,6BAAsC;ERu6F9C;EQt7FM;IAAgC,0BAA4B;ERy7FlE;EQx7FM;;IAEE,8BAAoC;ER07F5C;EQx7FM;;IAEE,gCAAwC;ER07FhD;EQx7FM;;IAEE,iCAA0C;ER07FlD;EQx7FM;;IAEE,+BAAsC;ER07F9C;EQz8FM;IAAgC,wBAA4B;ER48FlE;EQ38FM;;IAEE,4BAAoC;ER68F5C;EQ38FM;;IAEE,8BAAwC;ER68FhD;EQ38FM;;IAEE,+BAA0C;ER68FlD;EQ38FM;;IAEE,6BAAsC;ER68F9C;EQr8FM;IAAwB,2BAA2B;ERw8FzD;EQv8FM;;IAEE,+BAA+B;ERy8FvC;EQv8FM;;IAEE,iCAAiC;ERy8FzC;EQv8FM;;IAEE,kCAAkC;ERy8F1C;EQv8FM;;IAEE,gCAAgC;ERy8FxC;EQx9FM;IAAwB,0BAA2B;ER29FzD;EQ19FM;;IAEE,8BAA+B;ER49FvC;EQ19FM;;IAEE,gCAAiC;ER49FzC;EQ19FM;;IAEE,iCAAkC;ER49F1C;EQ19FM;;IAEE,+BAAgC;ER49FxC;EQ3+FM;IAAwB,wBAA2B;ER8+FzD;EQ7+FM;;IAEE,4BAA+B;ER++FvC;EQ7+FM;;IAEE,8BAAiC;ER++FzC;EQ7+FM;;IAEE,+BAAkC;ER++F1C;EQ7+FM;;IAEE,6BAAgC;ER++FxC;EQ9/FM;IAAwB,0BAA2B;ERigGzD;EQhgGM;;IAEE,8BAA+B;ERkgGvC;EQhgGM;;IAEE,gCAAiC;ERkgGzC;EQhgGM;;IAEE,iCAAkC;ERkgG1C;EQhgGM;;IAEE,+BAAgC;ERkgGxC;EQjhGM;IAAwB,wBAA2B;ERohGzD;EQnhGM;;IAEE,4BAA+B;ERqhGvC;EQnhGM;;IAEE,8BAAiC;ERqhGzC;EQnhGM;;IAEE,+BAAkC;ERqhG1C;EQnhGM;;IAEE,6BAAgC;ERqhGxC;EQ/gGE;IAAmB,uBAAuB;ERkhG5C;EQjhGE;;IAEE,2BAA2B;ERmhG/B;EQjhGE;;IAEE,6BAA6B;ERmhGjC;EQjhGE;;IAEE,8BAA8B;ERmhGlC;EQjhGE;;IAEE,4BAA4B;ERmhGhC;AACF;;AG7hGI;EKlDI;IAAgC,oBAA4B;ERolGlE;EQnlGM;;IAEE,wBAAoC;ERqlG5C;EQnlGM;;IAEE,0BAAwC;ERqlGhD;EQnlGM;;IAEE,2BAA0C;ERqlGlD;EQnlGM;;IAEE,yBAAsC;ERqlG9C;EQpmGM;IAAgC,0BAA4B;ERumGlE;EQtmGM;;IAEE,8BAAoC;ERwmG5C;EQtmGM;;IAEE,gCAAwC;ERwmGhD;EQtmGM;;IAEE,iCAA0C;ERwmGlD;EQtmGM;;IAEE,+BAAsC;ERwmG9C;EQvnGM;IAAgC,yBAA4B;ER0nGlE;EQznGM;;IAEE,6BAAoC;ER2nG5C;EQznGM;;IAEE,+BAAwC;ER2nGhD;EQznGM;;IAEE,gCAA0C;ER2nGlD;EQznGM;;IAEE,8BAAsC;ER2nG9C;EQ1oGM;IAAgC,uBAA4B;ER6oGlE;EQ5oGM;;IAEE,2BAAoC;ER8oG5C;EQ5oGM;;IAEE,6BAAwC;ER8oGhD;EQ5oGM;;IAEE,8BAA0C;ER8oGlD;EQ5oGM;;IAEE,4BAAsC;ER8oG9C;EQ7pGM;IAAgC,yBAA4B;ERgqGlE;EQ/pGM;;IAEE,6BAAoC;ERiqG5C;EQ/pGM;;IAEE,+BAAwC;ERiqGhD;EQ/pGM;;IAEE,gCAA0C;ERiqGlD;EQ/pGM;;IAEE,8BAAsC;ERiqG9C;EQhrGM;IAAgC,uBAA4B;ERmrGlE;EQlrGM;;IAEE,2BAAoC;ERorG5C;EQlrGM;;IAEE,6BAAwC;ERorGhD;EQlrGM;;IAEE,8BAA0C;ERorGlD;EQlrGM;;IAEE,4BAAsC;ERorG9C;EQnsGM;IAAgC,qBAA4B;ERssGlE;EQrsGM;;IAEE,yBAAoC;ERusG5C;EQrsGM;;IAEE,2BAAwC;ERusGhD;EQrsGM;;IAEE,4BAA0C;ERusGlD;EQrsGM;;IAEE,0BAAsC;ERusG9C;EQttGM;IAAgC,2BAA4B;ERytGlE;EQxtGM;;IAEE,+BAAoC;ER0tG5C;EQxtGM;;IAEE,iCAAwC;ER0tGhD;EQxtGM;;IAEE,kCAA0C;ER0tGlD;EQxtGM;;IAEE,gCAAsC;ER0tG9C;EQzuGM;IAAgC,0BAA4B;ER4uGlE;EQ3uGM;;IAEE,8BAAoC;ER6uG5C;EQ3uGM;;IAEE,gCAAwC;ER6uGhD;EQ3uGM;;IAEE,iCAA0C;ER6uGlD;EQ3uGM;;IAEE,+BAAsC;ER6uG9C;EQ5vGM;IAAgC,wBAA4B;ER+vGlE;EQ9vGM;;IAEE,4BAAoC;ERgwG5C;EQ9vGM;;IAEE,8BAAwC;ERgwGhD;EQ9vGM;;IAEE,+BAA0C;ERgwGlD;EQ9vGM;;IAEE,6BAAsC;ERgwG9C;EQ/wGM;IAAgC,0BAA4B;ERkxGlE;EQjxGM;;IAEE,8BAAoC;ERmxG5C;EQjxGM;;IAEE,gCAAwC;ERmxGhD;EQjxGM;;IAEE,iCAA0C;ERmxGlD;EQjxGM;;IAEE,+BAAsC;ERmxG9C;EQlyGM;IAAgC,wBAA4B;ERqyGlE;EQpyGM;;IAEE,4BAAoC;ERsyG5C;EQpyGM;;IAEE,8BAAwC;ERsyGhD;EQpyGM;;IAEE,+BAA0C;ERsyGlD;EQpyGM;;IAEE,6BAAsC;ERsyG9C;EQ9xGM;IAAwB,2BAA2B;ERiyGzD;EQhyGM;;IAEE,+BAA+B;ERkyGvC;EQhyGM;;IAEE,iCAAiC;ERkyGzC;EQhyGM;;IAEE,kCAAkC;ERkyG1C;EQhyGM;;IAEE,gCAAgC;ERkyGxC;EQjzGM;IAAwB,0BAA2B;ERozGzD;EQnzGM;;IAEE,8BAA+B;ERqzGvC;EQnzGM;;IAEE,gCAAiC;ERqzGzC;EQnzGM;;IAEE,iCAAkC;ERqzG1C;EQnzGM;;IAEE,+BAAgC;ERqzGxC;EQp0GM;IAAwB,wBAA2B;ERu0GzD;EQt0GM;;IAEE,4BAA+B;ERw0GvC;EQt0GM;;IAEE,8BAAiC;ERw0GzC;EQt0GM;;IAEE,+BAAkC;ERw0G1C;EQt0GM;;IAEE,6BAAgC;ERw0GxC;EQv1GM;IAAwB,0BAA2B;ER01GzD;EQz1GM;;IAEE,8BAA+B;ER21GvC;EQz1GM;;IAEE,gCAAiC;ER21GzC;EQz1GM;;IAEE,iCAAkC;ER21G1C;EQz1GM;;IAEE,+BAAgC;ER21GxC;EQ12GM;IAAwB,wBAA2B;ER62GzD;EQ52GM;;IAEE,4BAA+B;ER82GvC;EQ52GM;;IAEE,8BAAiC;ER82GzC;EQ52GM;;IAEE,+BAAkC;ER82G1C;EQ52GM;;IAEE,6BAAgC;ER82GxC;EQx2GE;IAAmB,uBAAuB;ER22G5C;EQ12GE;;IAEE,2BAA2B;ER42G/B;EQ12GE;;IAEE,6BAA6B;ER42GjC;EQ12GE;;IAEE,8BAA8B;ER42GlC;EQ12GE;;IAEE,4BAA4B;ER42GhC;AACF","file":"bootstrap-grid.css","sourcesContent":["/*!\n * Bootstrap Grid v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n@import \"utilities/spacing\";\n","/*!\n * Bootstrap Grid v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n @include deprecate(\"The `make-container-max-widths` mixin\", \"v4.5.2\", \"v5\");\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n & > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n$grid-row-columns: 6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y / 2) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n$custom-control-cursor: null !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: null !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: null !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'><path stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/></svg>\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: null !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'><circle r='3' fill='#{$custom-control-indicator-checked-color}'/></svg>\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'><path fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>\") !default;\n$custom-select-background: escape-svg($custom-select-indicator) no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>\") !default;\n\n$form-validation-states: () !default;\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n$dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size: null !default;\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/></svg>\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/></svg>\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n$user-selects: all, auto, none !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @if $columns > 0 {\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n }\n\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n @if $columns > 0 {\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../scss/bootstrap-grid.scss","bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_spacing.scss"],"names":[],"mappings":"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EKp0BM;IAAwB,iBADZ;IACY,QADZ;ELw0BlB;EKv0BM;IAAwB,iBADZ;IACY,QADZ;EL20BlB;EK10BM;IAAwB,kBADZ;IACY,SADZ;EL80BlB;EK70BM;IAAwB,kBADZ;IACY,SADZ;ELi1BlB;EKh1BM;IAAwB,kBADZ;IACY,SADZ;ELo1BlB;EK50BU;IHhBV,cAA4B;EF+1B5B;EK/0BU;IHhBV,sBAA8C;EFk2B9C;EKl1BU;IHhBV,uBAA8C;EFq2B9C;EKr1BU;IHhBV,gBAA8C;EFw2B9C;EKx1BU;IHhBV,uBAA8C;EF22B9C;EK31BU;IHhBV,uBAA8C;EF82B9C;EK91BU;IHhBV,gBAA8C;EFi3B9C;EKj2BU;IHhBV,uBAA8C;EFo3B9C;EKp2BU;IHhBV,uBAA8C;EFu3B9C;EKv2BU;IHhBV,gBAA8C;EF03B9C;EK12BU;IHhBV,uBAA8C;EF63B9C;EK72BU;IHhBV,uBAA8C;EFg4B9C;AACF;;AM76BM;EAAwB,wBAA0B;ANi7BxD;;AMj7BM;EAAwB,0BAA0B;ANq7BxD;;AMr7BM;EAAwB,gCAA0B;ANy7BxD;;AMz7BM;EAAwB,yBAA0B;AN67BxD;;AM77BM;EAAwB,yBAA0B;ANi8BxD;;AMj8BM;EAAwB,6BAA0B;ANq8BxD;;AMr8BM;EAAwB,8BAA0B;ANy8BxD;;AMz8BM;EAAwB,+BAA0B;EAA1B,wBAA0B;AN68BxD;;AM78BM;EAAwB,sCAA0B;EAA1B,+BAA0B;ANi9BxD;;AGh6BI;EGjDE;IAAwB,wBAA0B;ENs9BtD;EMt9BI;IAAwB,0BAA0B;ENy9BtD;EMz9BI;IAAwB,gCAA0B;EN49BtD;EM59BI;IAAwB,yBAA0B;EN+9BtD;EM/9BI;IAAwB,yBAA0B;ENk+BtD;EMl+BI;IAAwB,6BAA0B;ENq+BtD;EMr+BI;IAAwB,8BAA0B;ENw+BtD;EMx+BI;IAAwB,+BAA0B;IAA1B,wBAA0B;EN2+BtD;EM3+BI;IAAwB,sCAA0B;IAA1B,+BAA0B;EN8+BtD;AACF;;AG97BI;EGjDE;IAAwB,wBAA0B;ENo/BtD;EMp/BI;IAAwB,0BAA0B;ENu/BtD;EMv/BI;IAAwB,gCAA0B;EN0/BtD;EM1/BI;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hD;;AQpsDQ;EAAgC,yBAA4B;ARwsDpE;;AQvsDQ;;EAEE,6BAAoC;AR0sD9C;;AQxsDQ;;EAEE,+BAAwC;AR2sDlD;;AQzsDQ;;EAEE,gCAA0C;AR4sDpD;;AQ1sDQ;;EAEE,8BAAsC;AR6sDhD;;AQ5tDQ;EAAgC,uBAA4B;ARguDpE;;AQ/tDQ;;EAEE,2BAAoC;ARkuD9C;;AQhuDQ;;EAEE,6BAAwC;ARmuDlD;;AQjuDQ;;EAEE,8BAA0C;ARouDpD;;AQluDQ;;EAEE,4BAAsC;ARquDhD;;AQpvDQ;EAAgC,yBAA4B;ARwvDpE;;AQvvDQ;;EAEE,6BAAoC;AR0vD9C;;AQxvDQ;;EAEE,+BAAwC;AR2vDlD;;AQzvDQ;;EAEE,gCAA0C;AR4vDpD;;AQ1vDQ;;EAEE,8BAAsC;AR6vDhD;;AQ5wDQ;EAAgC,uBAA4B;ARgxDpE;;AQ/wDQ;;EAEE,2BAAoC;ARkxD9C;;AQhxDQ;;EAEE,6BAAwC;ARmxDlD;;AQjxDQ;;EAEE,8BAA0C;ARoxDpD;;AQlxDQ;;EAEE,4BAAsC;ARqxDhD;;AQpyDQ;EAAgC,qBAA4B;ARwyDpE;;AQvyDQ;;EAEE,yBAAoC;AR0yD9C;;AQxyDQ;;EAEE,2BAAwC;AR2yDlD;;AQzyDQ;;EAEE,4BAA0C;AR4yDpD;;AQ1yDQ;;EAEE,0BAAsC;AR6yDhD;;AQ5zDQ;EAAgC,2BAA4B;ARg0DpE;;AQ/zDQ;;EAEE,+BAAoC;ARk0D9C;;AQh0DQ;;EAEE,iCAAwC;ARm0DlD;;AQj0DQ;;EAEE,kCAA0C;ARo0DpD;;AQl0DQ;;EAEE,gCAAsC;ARq0DhD;;AQp1DQ;EAAgC,0BAA4B;ARw1DpE;;AQv1DQ;;EAEE,8BAAoC;AR01D9C;;AQx1DQ;;EAEE,gCAAwC;AR21DlD;;AQz1DQ;;EAEE,iCAA0C;AR41DpD;;AQ11DQ;;EAEE,+BAAsC;AR61DhD;;AQ52DQ;EAAgC,wBAA4B;ARg3DpE;;AQ/2DQ;;EAEE,4BAAoC;ARk3D9C;;AQh3DQ;;EAEE,8BAAwC;ARm3DlD;;AQj3DQ;;EAEE,+BAA0C;ARo3DpD;;AQl3DQ;;EAEE,6BAAsC;ARq3DhD;;AQp4DQ;EAAgC,0BAA4B;ARw4DpE;;AQv4DQ;;EAEE,8BAAoC;AR04D9C;;AQx4DQ;;EAEE,gCAAwC;AR24DlD;;AQz4DQ;;EAEE,iCAA0C;AR44DpD;;AQ14DQ;;EAEE,+BAAsC;AR64DhD;;AQ55DQ;EAAgC,wBAA4B;ARg6DpE;;AQ/5DQ;;EAEE,4BAAoC;ARk6D9C;;AQh6DQ;;EAEE,8BAAwC;ARm6DlD;;AQj6DQ;;EAEE,+BAA0C;ARo6DpD;;AQl6DQ;;EAEE,6BAAsC;ARq6DhD;;AQ75DQ;EAAwB,2BAA2B;ARi6D3D;;AQh6DQ;;EAEE,+BAA+B;ARm6DzC;;AQj6DQ;;EAEE,iCAAiC;ARo6D3C;;AQl6DQ;;EAEE,kCAAkC;ARq6D5C;;AQn6DQ;;EAEE,gCAAgC;ARs6D1C;;AQr7DQ;EAAwB,0BAA2B;ARy7D3D;;AQx7DQ;;EAEE,8BAA+B;AR27DzC;;AQz7DQ;;EAEE,gCAAiC;AR47D3C;;AQ17DQ;;EAEE,iCAAkC;AR67D5C;;AQ37DQ;;EAEE,+BAAgC;AR87D1C;;AQ78DQ;EAAwB,wBAA2B;ARi9D3D;;AQh9DQ;;EAEE,4BAA+B;ARm9DzC;;AQj9DQ;;EAEE,8BAAiC;ARo9D3C;;AQl9DQ;;EAEE,+BAAkC;ARq9D5C;;AQn9DQ;;EAEE,6BAAgC;ARs9D1C;;AQr+DQ;EAAwB,0BAA2B;ARy+D3D;;AQx+DQ;;EAEE,8BAA+B;AR2+DzC;;AQz+DQ;;EAEE,gCAAiC;AR4+D3C;;AQ1+DQ;;EAEE,iCAAkC;AR6+D5C;;AQ3+DQ;;EAEE,+BAAgC;AR8+D1C;;AQ7/DQ;EAAwB,wBAA2B;ARigE3D;;AQhgEQ;;EAEE,4BAA+B;ARmgEzC;;AQjgEQ;;EAEE,8BAAiC;ARogE3C;;AQlgEQ;;EAEE,+BAAkC;ARqgE5C;;AQngEQ;;EAEE,6BAAgC;ARsgE1C;;AQhgEI;EAAmB,uBAAuB;ARogE9C;;AQngEI;;EAEE,2BAA2B;ARsgEjC;;AQpgEI;;EAEE,6BAA6B;ARugEnC;;AQrgEI;;EAEE,8BAA8B;ARwgEpC;;AQtgEI;;EAEE,4BAA4B;ARygElC;;AGlhEI;EKlDI;IAAgC,oBAA4B;ERykElE;EQxkEM;;IAEE,wBAAoC;ER0kE5C;EQxkEM;;IAEE,0BAAwC;ER0kEhD;EQxkEM;;IAEE,2BAA0C;ER0kElD;EQxkEM;;IAEE,yBAAsC;ER0kE9C;EQzlEM;IAAgC,0BAA4B;ER4lElE;EQ3lEM;;IAEE,8BAAoC;ER6lE5C;EQ3lEM;;IAEE,gCAAwC;ER6lEhD;EQ3lEM;;IAEE,iCAA0C;ER6lElD;EQ3lEM;;IAEE,+BAAsC;ER6lE9C;EQ5mEM;IAAgC,yBAA4B;ER+mElE;EQ9mEM;;IAEE,6BAAoC;ERgnE5C;EQ9mEM;;IAEE,+BAAwC;ERgnEhD;EQ9mEM;;IAEE,gCAA0C;ERgnElD;EQ9mEM;;IAEE,8BAAsC;ERgnE9C;EQ/nEM;IAAgC,uBAA4B;ERkoElE;EQjoEM;;IAEE,2BAAoC;ERmoE5C;EQjoEM;;IAEE,6BAAwC;ERmoEhD;EQjoEM;;IAEE,8BAA0C;ERmoElD;EQjoEM;;IAEE,4BAAsC;ERmoE9C;EQlpEM;IAAgC,yBAA4B;ERqpElE;EQppEM;;IAEE,6BAAoC;ERspE5C;EQppEM;;IAEE,+BAAwC;ERspEhD;EQppEM;;IAEE,gCAA0C;ERspElD;EQppEM;;IAEE,8BAAsC;ERspE9C;EQrqEM;IAAgC,uBAA4B;ERwqElE;EQvqEM;;IAEE,2BAAoC;ERyqE5C;EQvqEM;;IAEE,6BAAwC;ERyqEhD;EQvqEM;;IAEE,8BAA0C;ERyqElD;EQvqEM;;IAEE,4BAAsC;ERyqE9C;EQxrEM;IAAgC,qBAA4B;ER2rElE;EQ1rEM;;IAEE,yBAAoC;ER4rE5C;EQ1rEM;;IAEE,2BAAwC;ER4rEhD;EQ1rEM;;IAEE,4BAA0C;ER4rElD;EQ1rEM;;IAEE,0BAAsC;ER4rE9C;EQ3sEM;IAAgC,2BAA4B;ER8sElE;EQ7sEM;;IAEE,+BAAoC;ER+sE5C;EQ7sEM;;IAEE,iCAAwC;ER+sEhD;EQ7sEM;;IAEE,kCAA0C;ER+sElD;EQ7sEM;;IAEE,gCAAsC;ER+sE9C;EQ9tEM;IAAgC,0BAA4B;ERiuElE;EQhuEM;;IAEE,8BAAoC;ERkuE5C;EQhuEM;;IAEE,gCAAwC;ERkuEhD;EQhuEM;;IAEE,iCAA0C;ERkuElD;EQhuEM;;IAEE,+BAAsC;ERkuE9C;EQjvEM;IAAgC,wBAA4B;ERovElE;EQnvEM;;IAEE,4BAAoC;ERqvE5C;EQnvEM;;IAEE,8BAAwC;ERqvEhD;EQnvEM;;IAEE,+BAA0C;ERqvElD;EQnvEM;;IAEE,6BAAsC;ERqvE9C;EQpwEM;IAAgC,0BAA4B;ERuwElE;EQtwEM;;IAEE,8BAAoC;ERwwE5C;EQtwEM;;IAEE,gCAAwC;ERwwEhD;EQtwEM;;IAEE,iCAA0C;ERwwElD;EQtwEM;;IAEE,+BAAsC;ERwwE9C;EQvxEM;IAAgC,wBAA4B;ER0xElE;EQzxEM;;IAEE,4BAAoC;ER2xE5C;EQzxEM;;IAEE,8BAAwC;ER2xEhD;EQzxEM;;IAEE,+BAA0C;ER2xElD;EQzxEM;;IAEE,6BAAsC;ER2xE9C;EQnxEM;IAAwB,2BAA2B;ERsxEzD;EQrxEM;;IAEE,+BAA+B;ERuxEvC;EQrxEM;;IAEE,iCAAiC;ERuxEzC;EQrxEM;;IAEE,kCAAkC;ERuxE1C;EQrxEM;;IAEE,gCAAgC;ERuxExC;EQtyEM;IAAwB,0BAA2B;ERyyEzD;EQxyEM;;IAEE,8BAA+B;ER0yEvC;EQxyEM;;IAEE,gCAAiC;ER0yEzC;EQxyEM;;IAEE,iCAAkC;ER0yE1C;EQxyEM;;IAEE,+BAAgC;ER0yExC;EQzzEM;IAAwB,wBAA2B;ER4zEzD;EQ3zEM;;IAEE,4BAA+B;ER6zEvC;EQ3zEM;;IAEE,8BAAiC;ER6zEzC;EQ3zEM;;IAEE,+BAAkC;ER6zE1C;EQ3zEM;;IAEE,6BAAgC;ER6zExC;EQ50EM;IAAwB,0BAA2B;ER+0EzD;EQ90EM;;IAEE,8BAA+B;ERg1EvC;EQ90EM;;IAEE,gCAAiC;ERg1EzC;EQ90EM;;IAEE,iCAAkC;ERg1E1C;EQ90EM;;IAEE,+BAAgC;ERg1ExC;EQ/1EM;IAAwB,wBAA2B;ERk2EzD;EQj2EM;;IAEE,4BAA+B;ERm2EvC;EQj2EM;;IAEE,8BAAiC;ERm2EzC;EQj2EM;;IAEE,+BAAkC;ERm2E1C;EQj2EM;;IAEE,6BAAgC;ERm2ExC;EQ71EE;IAAmB,uBAAuB;ERg2E5C;EQ/1EE;;IAEE,2BAA2B;ERi2E/B;EQ/1EE;;IAEE,6BAA6B;ERi2EjC;EQ/1EE;;IAEE,8BAA8B;ERi2ElC;EQ/1EE;;IAEE,4BAA4B;ERi2EhC;AACF;;AG32EI;EKlDI;IAAgC,oBAA4B;ERk6ElE;EQj6EM;;IAEE,wBAAoC;ERm6E5C;EQj6EM;;IAEE,0BAAwC;ERm6EhD;EQj6EM;;IAEE,2BAA0C;ERm6ElD;EQj6EM;;IAEE,yBAAsC;ERm6E9C;EQl7EM;IAAgC,0BAA4B;ERq7ElE;EQp7EM;;IAEE,8BAAoC;ERs7E5C;EQp7EM;;IAEE,gCAAwC;ERs7EhD;EQp7EM;;IAEE,iCAA0C;ERs7ElD;EQp7EM;;IAEE,+BAAsC;ERs7E9C;EQr8EM;IAAgC,yBAA4B;ERw8ElE;EQv8EM;;IAEE,6BAAoC;ERy8E5C;EQv8EM;;IAEE,+BAAwC;ERy8EhD;EQv8EM;;IAEE,gCAA0C;ERy8ElD;EQv8EM;;IAEE,8BAAsC;ERy8E9C;EQx9EM;IAAgC,uBAA4B;ER29ElE;EQ19EM;;IAEE,2BAAoC;ER49E5C;EQ19EM;;IAEE,6BAAwC;ER49EhD;EQ19EM;;IAEE,8BAA0C;ER49ElD;EQ19EM;;IAEE,4BAAsC;ER49E9C;EQ3+EM;IAAgC,yBAA4B;ER8+ElE;EQ7+EM;;IAEE,6BAAoC;ER++E5C;EQ7+EM;;IAEE,+BAAwC;ER++EhD;EQ7+EM;;IAEE,gCAA0C;ER++ElD;EQ7+EM;;IAEE,8BAAsC;ER++E9C;EQ9/EM;IAAgC,uBAA4B;ERigFlE;EQhgFM;;IAEE,2BAAoC;ERkgF5C;EQhgFM;;IAEE,6BAAwC;ERkgFhD;EQhgFM;;IAEE,8BAA0C;ERkgFlD;EQhgFM;;IAEE,4BAAsC;ERkgF9C;EQjhFM;IAAgC,qBAA4B;ERohFlE;EQnhFM;;IAEE,yBAAoC;ERqhF5C;EQnhFM;;IAEE,2BAAwC;ERqhFhD;EQnhFM;;IAEE,4BAA0C;ERqhFlD;EQnhFM;;IAEE,0BAAsC;ERqhF9C;EQpiFM;IAAgC,2BAA4B;ERuiFlE;EQtiFM;;IAEE,+BAAoC;ERwiF5C;EQtiFM;;IAEE,iCAAwC;ERwiFhD;EQtiFM;;IAEE,kCAA0C;ERwiFlD;EQtiFM;;IAEE,gCAAsC;ERwiF9C;EQvjFM;IAAgC,0BAA4B;ER0jFlE;EQzjFM;;IAEE,8BAAoC;ER2jF5C;EQzjFM;;IAEE,gCAAwC;ER2jFhD;EQzjFM;;IAEE,iCAA0C;ER2jFlD;EQzjFM;;IAEE,+BAAsC;ER2jF9C;EQ1kFM;IAAgC,wBAA4B;ER6kFlE;EQ5kFM;;IAEE,4BAAoC;ER8kF5C;EQ5kFM;;IAEE,8BAAwC;ER8kFhD;EQ5kFM;;IAEE,+BAA0C;ER8kFlD;EQ5kFM;;IAEE,6BAAsC;ER8kF9C;EQ7lFM;IAAgC,0BAA4B;ERgmFlE;EQ/lFM;;IAEE,8BAAoC;ERimF5C;EQ/lFM;;IAEE,gCAAwC;ERimFhD;EQ/lFM;;IAEE,iCAA0C;ERimFlD;EQ/lFM;;IAEE,+BAAsC;ERimF9C;EQhnFM;IAAgC,wBAA4B;ERmnFlE;EQlnFM;;IAEE,4BAAoC;ERonF5C;EQlnFM;;IAEE,8BAAwC;ERonFhD;EQlnFM;;IAEE,+BAA0C;ERonFlD;EQlnFM;;IAEE,6BAAsC;ERonF9C;EQ5mFM;IAAwB,2BAA2B;ER+mFzD;EQ9mFM;;IAEE,+BAA+B;ERgnFvC;EQ9mFM;;IAEE,iCAAiC;ERgnFzC;EQ9mFM;;IAEE,kCAAkC;ERgnF1C;EQ9mFM;;IAEE,gCAAgC;ERgnFxC;EQ/nFM;IAAwB,0BAA2B;ERkoFzD;EQjoFM;;IAEE,8BAA+B;ERmoFvC;EQjoFM;;IAEE,gCAAiC;ERmoFzC;EQjoFM;;IAEE,iCAAkC;ERmoF1C;EQjoFM;;IAEE,+BAAgC;ERmoFxC;EQlpFM;IAAwB,wBAA2B;ERqpFzD;EQppFM;;IAEE,4BAA+B;ERspFvC;EQppFM;;IAEE,8BAAiC;ERspFzC;EQppFM;;IAEE,+BAAkC;ERspF1C;EQppFM;;IAEE,6BAAgC;ERspFxC;EQrqFM;IAAwB,0BAA2B;ERwqFzD;EQvqFM;;IAEE,8BAA+B;ERyqFvC;EQvqFM;;IAEE,gCAAiC;ERyqFzC;EQvqFM;;IAEE,iCAAkC;ERyqF1C;EQvqFM;;IAEE,+BAAgC;ERyqFxC;EQxrFM;IAAwB,wBAA2B;ER2rFzD;EQ1rFM;;IAEE,4BAA+B;ER4rFvC;EQ1rFM;;IAEE,8BAAiC;ER4rFzC;EQ1rFM;;IAEE,+BAAkC;ER4rF1C;EQ1rFM;;IAEE,6BAAgC;ER4rFxC;EQtrFE;IAAmB,uBAAuB;ERyrF5C;EQxrFE;;IAEE,2BAA2B;ER0rF/B;EQxrFE;;IAEE,6BAA6B;ER0rFjC;EQxrFE;;IAEE,8BAA8B;ER0rFlC;EQxrFE;;IAEE,4BAA4B;ER0rFhC;AACF;;AGpsFI;EKlDI;IAAgC,oBAA4B;ER2vFlE;EQ1vFM;;IAEE,wBAAoC;ER4vF5C;EQ1vFM;;IAEE,0BAAwC;ER4vFhD;EQ1vFM;;IAEE,2BAA0C;ER4vFlD;EQ1vFM;;IAEE,yBAAsC;ER4vF9C;EQ3wFM;IAAgC,0BAA4B;ER8wFlE;EQ7wFM;;IAEE,8BAAoC;ER+wF5C;EQ7wFM;;IAEE,gCAAwC;ER+wFhD;EQ7wFM;;IAEE,iCAA0C;ER+wFlD;EQ7wFM;;IAEE,+BAAsC;ER+wF9C;EQ9xFM;IAAgC,yBAA4B;ERiyFlE;EQhyFM;;IAEE,6BAAoC;ERkyF5C;EQhyFM;;IAEE,+BAAwC;ERkyFhD;EQhyFM;;IAEE,gCAA0C;ERkyFlD;EQhyFM;;IAEE,8BAAsC;ERkyF9C;EQjzFM;IAAgC,uBAA4B;ERozFlE;EQnzFM;;IAEE,2BAAoC;ERqzF5C;EQnzFM;;IAEE,6BAAwC;ERqzFhD;EQnzFM;;IAEE,8BAA0C;ERqzFlD;EQnzFM;;IAEE,4BAAsC;ERqzF9C;EQp0FM;IAAgC,yBAA4B;ERu0FlE;EQt0FM;;IAEE,6BAAoC;ERw0F5C;EQt0FM;;IAEE,+BAAwC;ERw0FhD;EQt0FM;;IAEE,gCAA0C;ERw0FlD;EQt0FM;;IAEE,8BAAsC;ERw0F9C;EQv1FM;IAAgC,uBAA4B;ER01FlE;EQz1FM;;IAEE,2BAAoC;ER21F5C;EQz1FM;;IAEE,6BAAwC;ER21FhD;EQz1FM;;IAEE,8BAA0C;ER21FlD;EQz1FM;;IAEE,4BAAsC;ER21F9C;EQ12FM;IAAgC,qBAA4B;ER62FlE;EQ52FM;;IAEE,yBAAoC;ER82F5C;EQ52FM;;IAEE,2BAAwC;ER82FhD;EQ52FM;;IAEE,4BAA0C;ER82FlD;EQ52FM;;IAEE,0BAAsC;ER82F9C;EQ73FM;IAAgC,2BAA4B;ERg4FlE;EQ/3FM;;IAEE,+BAAoC;ERi4F5C;EQ/3FM;;IAEE,iCAAwC;ERi4FhD;EQ/3FM;;IAEE,kCAA0C;ERi4FlD;EQ/3FM;;IAEE,gCAAsC;ERi4F9C;EQh5FM;IAAgC,0BAA4B;ERm5FlE;EQl5FM;;IAEE,8BAAoC;ERo5F5C;EQl5FM;;IAEE,gCAAwC;ERo5FhD;EQl5FM;;IAEE,iCAA0C;ERo5FlD;EQl5FM;;IAEE,+BAAsC;ERo5F9C;EQn6FM;IAAgC,wBAA4B;ERs6FlE;EQr6FM;;IAEE,4BAAoC;ERu6F5C;EQr6FM;;IAEE,8BAAwC;ERu6FhD;EQr6FM;;IAEE,+BAA0C;ERu6FlD;EQr6FM;;IAEE,6BAAsC;ERu6F9C;EQt7FM;IAAgC,0BAA4B;ERy7FlE;EQx7FM;;IAEE,8BAAoC;ER07F5C;EQx7FM;;IAEE,gCAAwC;ER07FhD;EQx7FM;;IAEE,iCAA0C;ER07FlD;EQx7FM;;IAEE,+BAAsC;ER07F9C;EQz8FM;IAAgC,wBAA4B;ER48FlE;EQ38FM;;IAEE,4BAAoC;ER68F5C;EQ38FM;;IAEE,8BAAwC;ER68FhD;EQ38FM;;IAEE,+BAA0C;ER68FlD;EQ38FM;;IAEE,6BAAsC;ER68F9C;EQr8FM;IAAwB,2BAA2B;ERw8FzD;EQv8FM;;IAEE,+BAA+B;ERy8FvC;EQv8FM;;IAEE,iCAAiC;ERy8FzC;EQv8FM;;IAEE,kCAAkC;ERy8F1C;EQv8FM;;IAEE,gCAAgC;ERy8FxC;EQx9FM;IAAwB,0BAA2B;ER29FzD;EQ19FM;;IAEE,8BAA+B;ER49FvC;EQ19FM;;IAEE,gCAAiC;ER49FzC;EQ19FM;;IAEE,iCAAkC;ER49F1C;EQ19FM;;IAEE,+BAAgC;ER49FxC;EQ3+FM;IAAwB,wBAA2B;ER8+FzD;EQ7+FM;;IAEE,4BAA+B;ER++FvC;EQ7+FM;;IAEE,8BAAiC;ER++FzC;EQ7+FM;;IAEE,+BAAkC;ER++F1C;EQ7+FM;;IAEE,6BAAgC;ER++FxC;EQ9/FM;IAAwB,0BAA2B;ERigGzD;EQhgGM;;IAEE,8BAA+B;ERkgGvC;EQhgGM;;IAEE,gCAAiC;ERkgGzC;EQhgGM;;IAEE,iCAAkC;ERkgG1C;EQhgGM;;IAEE,+BAAgC;ERkgGxC;EQjhGM;IAAwB,wBAA2B;ERohGzD;EQnhGM;;IAEE,4BAA+B;ERqhGvC;EQnhGM;;IAEE,8BAAiC;ERqhGzC;EQnhGM;;IAEE,+BAAkC;ERqhG1C;EQnhGM;;IAEE,6BAAgC;ERqhGxC;EQ/gGE;IAAmB,uBAAuB;ERkhG5C;EQjhGE;;IAEE,2BAA2B;ERmhG/B;EQjhGE;;IAEE,6BAA6B;ERmhGjC;EQjhGE;;IAEE,8BAA8B;ERmhGlC;EQjhGE;;IAEE,4BAA4B;ERmhGhC;AACF;;AG7hGI;EKlDI;IAAgC,oBAA4B;ERolGlE;EQnlGM;;IAEE,wBAAoC;ERqlG5C;EQnlGM;;IAEE,0BAAwC;ERqlGhD;EQnlGM;;IAEE,2BAA0C;ERqlGlD;EQnlGM;;IAEE,yBAAsC;ERqlG9C;EQpmGM;IAAgC,0BAA4B;ERumGlE;EQtmGM;;IAEE,8BAAoC;ERwmG5C;EQtmGM;;IAEE,gCAAwC;ERwmGhD;EQtmGM;;IAEE,iCAA0C;ERwmGlD;EQtmGM;;IAEE,+BAAsC;ERwmG9C;EQvnGM;IAAgC,yBAA4B;ER0nGlE;EQznGM;;IAEE,6BAAoC;ER2nG5C;EQznGM;;IAEE,+BAAwC;ER2nGhD;EQznGM;;IAEE,gCAA0C;ER2nGlD;EQznGM;;IAEE,8BAAsC;ER2nG9C;EQ1oGM;IAAgC,uBAA4B;ER6oGlE;EQ5oGM;;IAEE,2BAAoC;ER8oG5C;EQ5oGM;;IAEE,6BAAwC;ER8oGhD;EQ5oGM;;IAEE,8BAA0C;ER8oGlD;EQ5oGM;;IAEE,4BAAsC;ER8oG9C;EQ7pGM;IAAgC,yBAA4B;ERgqGlE;EQ/pGM;;IAEE,6BAAoC;ERiqG5C;EQ/pGM;;IAEE,+BAAwC;ERiqGhD;EQ/pGM;;IAEE,gCAA0C;ERiqGlD;EQ/pGM;;IAEE,8BAAsC;ERiqG9C;EQhrGM;IAAgC,uBAA4B;ERmrGlE;EQlrGM;;IAEE,2BAAoC;ERorG5C;EQlrGM;;IAEE,6BAAwC;ERorGhD;EQlrGM;;IAEE,8BAA0C;ERorGlD;EQlrGM;;IAEE,4BAAsC;ERorG9C;EQnsGM;IAAgC,qBAA4B;ERssGlE;EQrsGM;;IAEE,yBAAoC;ERusG5C;EQrsGM;;IAEE,2BAAwC;ERusGhD;EQrsGM;;IAEE,4BAA0C;ERusGlD;EQrsGM;;IAEE,0BAAsC;ERusG9C;EQttGM;IAAgC,2BAA4B;ERytGlE;EQxtGM;;IAEE,+BAAoC;ER0tG5C;EQxtGM;;IAEE,iCAAwC;ER0tGhD;EQxtGM;;IAEE,kCAA0C;ER0tGlD;EQxtGM;;IAEE,gCAAsC;ER0tG9C;EQzuGM;IAAgC,0BAA4B;ER4uGlE;EQ3uGM;;IAEE,8BAAoC;ER6uG5C;EQ3uGM;;IAEE,gCAAwC;ER6uGhD;EQ3uGM;;IAEE,iCAA0C;ER6uGlD;EQ3uGM;;IAEE,+BAAsC;ER6uG9C;EQ5vGM;IAAgC,wBAA4B;ER+vGlE;EQ9vGM;;IAEE,4BAAoC;ERgwG5C;EQ9vGM;;IAEE,8BAAwC;ERgwGhD;EQ9vGM;;IAEE,+BAA0C;ERgwGlD;EQ9vGM;;IAEE,6BAAsC;ERgwG9C;EQ/wGM;IAAgC,0BAA4B;ERkxGlE;EQjxGM;;IAEE,8BAAoC;ERmxG5C;EQjxGM;;IAEE,gCAAwC;ERmxGhD;EQjxGM;;IAEE,iCAA0C;ERmxGlD;EQjxGM;;IAEE,+BAAsC;ERmxG9C;EQlyGM;IAAgC,wBAA4B;ERqyGlE;EQpyGM;;IAEE,4BAAoC;ERsyG5C;EQpyGM;;IAEE,8BAAwC;ERsyGhD;EQpyGM;;IAEE,+BAA0C;ERsyGlD;EQpyGM;;IAEE,6BAAsC;ERsyG9C;EQ9xGM;IAAwB,2BAA2B;ERiyGzD;EQhyGM;;IAEE,+BAA+B;ERkyGvC;EQhyGM;;IAEE,iCAAiC;ERkyGzC;EQhyGM;;IAEE,kCAAkC;ERkyG1C;EQhyGM;;IAEE,gCAAgC;ERkyGxC;EQjzGM;IAAwB,0BAA2B;ERozGzD;EQnzGM;;IAEE,8BAA+B;ERqzGvC;EQnzGM;;IAEE,gCAAiC;ERqzGzC;EQnzGM;;IAEE,iCAAkC;ERqzG1C;EQnzGM;;IAEE,+BAAgC;ERqzGxC;EQp0GM;IAAwB,wBAA2B;ERu0GzD;EQt0GM;;IAEE,4BAA+B;ERw0GvC;EQt0GM;;IAEE,8BAAiC;ERw0GzC;EQt0GM;;IAEE,+BAAkC;ERw0G1C;EQt0GM;;IAEE,6BAAgC;ERw0GxC;EQv1GM;IAAwB,0BAA2B;ER01GzD;EQz1GM;;IAEE,8BAA+B;ER21GvC;EQz1GM;;IAEE,gCAAiC;ER21GzC;EQz1GM;;IAEE,iCAAkC;ER21G1C;EQz1GM;;IAEE,+BAAgC;ER21GxC;EQ12GM;IAAwB,wBAA2B;ER62GzD;EQ52GM;;IAEE,4BAA+B;ER82GvC;EQ52GM;;IAEE,8BAAiC;ER82GzC;EQ52GM;;IAEE,+BAAkC;ER82G1C;EQ52GM;;IAEE,6BAAgC;ER82GxC;EQx2GE;IAAmB,uBAAuB;ER22G5C;EQ12GE;;IAEE,2BAA2B;ER42G/B;EQ12GE;;IAEE,6BAA6B;ER42GjC;EQ12GE;;IAEE,8BAA8B;ER42GlC;EQ12GE;;IAEE,4BAA4B;ER42GhC;AACF","file":"bootstrap-grid.css","sourcesContent":["/*!\n * Bootstrap Grid v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n@import \"utilities/spacing\";\n","/*!\n * Bootstrap Grid v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n @include deprecate(\"The `make-container-max-widths` mixin\", \"v4.5.2\", \"v5\");\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n$grid-row-columns: 6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n$table-th-font-weight: null !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y / 2) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n$custom-control-cursor: null !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: null !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: null !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'><path stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/></svg>\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: null !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'><circle r='3' fill='#{$custom-control-indicator-checked-color}'/></svg>\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'><path fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>\") !default;\n$custom-select-background: escape-svg($custom-select-indicator) no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>\") !default;\n\n$form-validation-states: () !default;\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-x: 0 !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n$dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size: null !default;\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/></svg>\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/></svg>\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n$user-selects: all, auto, none !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @if $columns > 0 {\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n }\n\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n @if $columns > 0 {\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n"]} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/dist/css/bootstrap-grid.min.css b/npm_assets/node_modules/bootstrap/dist/css/bootstrap-grid.min.css index 3686ebe7c8..d323f93fd0 100644 --- a/npm_assets/node_modules/bootstrap/dist/css/bootstrap-grid.min.css +++ b/npm_assets/node_modules/bootstrap/dist/css/bootstrap-grid.min.css @@ -1,5 +1,5 @@ /*! - * Bootstrap Grid v4.5.2 (https://getbootstrap.com/) + * Bootstrap Grid v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors * Copyright 2011-2020 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) diff --git a/npm_assets/node_modules/bootstrap/dist/css/bootstrap-grid.min.css.map b/npm_assets/node_modules/bootstrap/dist/css/bootstrap-grid.min.css.map index 005ef96dfe..9c96ff302e 100644 --- a/npm_assets/node_modules/bootstrap/dist/css/bootstrap-grid.min.css.map +++ b/npm_assets/node_modules/bootstrap/dist/css/bootstrap-grid.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../scss/bootstrap-grid.scss","dist/css/bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_spacing.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Grid v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n@import \"utilities/spacing\";\n","/*!\n * Bootstrap Grid v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n @include deprecate(\"The `make-container-max-widths` mixin\", \"v4.5.2\", \"v5\");\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n & > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @if $columns > 0 {\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n }\n\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n @if $columns > 0 {\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../scss/bootstrap-grid.scss","dist/css/bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_spacing.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Grid v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n@import \"utilities/spacing\";\n","/*!\n * Bootstrap Grid v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n @include deprecate(\"The `make-container-max-widths` mixin\", \"v4.5.2\", \"v5\");\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @if $columns > 0 {\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n }\n\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n @if $columns > 0 {\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n"]} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/dist/css/bootstrap-reboot.css b/npm_assets/node_modules/bootstrap/dist/css/bootstrap-reboot.css index 0ec67df53f..4c642187d3 100644 --- a/npm_assets/node_modules/bootstrap/dist/css/bootstrap-reboot.css +++ b/npm_assets/node_modules/bootstrap/dist/css/bootstrap-reboot.css @@ -1,5 +1,5 @@ /*! - * Bootstrap Reboot v4.5.2 (https://getbootstrap.com/) + * Bootstrap Reboot v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors * Copyright 2011-2020 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) @@ -186,6 +186,7 @@ caption { th { text-align: inherit; + text-align: -webkit-match-parent; } label { diff --git a/npm_assets/node_modules/bootstrap/dist/css/bootstrap-reboot.css.map b/npm_assets/node_modules/bootstrap/dist/css/bootstrap-reboot.css.map index a0ba66ed07..e79cab0cf8 100644 --- a/npm_assets/node_modules/bootstrap/dist/css/bootstrap-reboot.css.map +++ b/npm_assets/node_modules/bootstrap/dist/css/bootstrap-reboot.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../scss/bootstrap-reboot.scss","bootstrap-reboot.css","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss"],"names":[],"mappings":"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","file":"bootstrap-reboot.css","sourcesContent":["/*!\n * Bootstrap Reboot v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","/*!\n * Bootstrap Reboot v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\n // making it impossible to interact with the content\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Set the cursor for non-`<button>` buttons\n//\n// Details at https://github.com/twbs/bootstrap/pull/30562\n[role=\"button\"] {\n cursor: pointer;\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n$grid-row-columns: 6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y / 2) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n$custom-control-cursor: null !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: null !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: null !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'><path stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/></svg>\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: null !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'><circle r='3' fill='#{$custom-control-indicator-checked-color}'/></svg>\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'><path fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>\") !default;\n$custom-select-background: escape-svg($custom-select-indicator) no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>\") !default;\n\n$form-validation-states: () !default;\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n$dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size: null !default;\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/></svg>\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/></svg>\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n$user-selects: all, auto, none !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n &:hover { @content; }\n}\n\n@mixin hover-focus() {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus() {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active() {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../scss/bootstrap-reboot.scss","bootstrap-reboot.css","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss"],"names":[],"mappings":"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","file":"bootstrap-reboot.css","sourcesContent":["/*!\n * Bootstrap Reboot v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","/*!\n * Bootstrap Reboot v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\n // making it impossible to interact with the content\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `<td>` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Set the cursor for non-`<button>` buttons\n//\n// Details at https://github.com/twbs/bootstrap/pull/30562\n[role=\"button\"] {\n cursor: pointer;\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n$grid-row-columns: 6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n$table-th-font-weight: null !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y / 2) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n$custom-control-cursor: null !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: null !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: null !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'><path stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/></svg>\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: null !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'><circle r='3' fill='#{$custom-control-indicator-checked-color}'/></svg>\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'><path fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>\") !default;\n$custom-select-background: escape-svg($custom-select-indicator) no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>\") !default;\n\n$form-validation-states: () !default;\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-x: 0 !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n$dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size: null !default;\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/></svg>\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/></svg>\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n$user-selects: all, auto, none !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n &:hover { @content; }\n}\n\n@mixin hover-focus() {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus() {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active() {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n"]} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/dist/css/bootstrap-reboot.min.css b/npm_assets/node_modules/bootstrap/dist/css/bootstrap-reboot.min.css index c755bd6d28..04512ed534 100644 --- a/npm_assets/node_modules/bootstrap/dist/css/bootstrap-reboot.min.css +++ b/npm_assets/node_modules/bootstrap/dist/css/bootstrap-reboot.min.css @@ -1,8 +1,8 @@ /*! - * Bootstrap Reboot v4.5.2 (https://getbootstrap.com/) + * Bootstrap Reboot v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors * Copyright 2011-2020 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) - */*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important} + */*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important} /*# sourceMappingURL=bootstrap-reboot.min.css.map */ \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/dist/css/bootstrap-reboot.min.css.map b/npm_assets/node_modules/bootstrap/dist/css/bootstrap-reboot.min.css.map index 44e6505164..bfaee258d5 100644 --- a/npm_assets/node_modules/bootstrap/dist/css/bootstrap-reboot.min.css.map +++ b/npm_assets/node_modules/bootstrap/dist/css/bootstrap-reboot.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../scss/bootstrap-reboot.scss","../../scss/_reboot.scss","dist/css/bootstrap-reboot.css","../../scss/vendor/_rfs.scss","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Reboot v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\n // making it impossible to interact with the content\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Set the cursor for non-`<button>` buttons\n//\n// Details at https://github.com/twbs/bootstrap/pull/30562\n[role=\"button\"] {\n cursor: pointer;\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap Reboot v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","/*!\n * Bootstrap Reboot v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n &:hover { @content; }\n}\n\n@mixin hover-focus() {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus() {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active() {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../scss/bootstrap-reboot.scss","../../scss/_reboot.scss","dist/css/bootstrap-reboot.css","../../scss/vendor/_rfs.scss","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Reboot v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\n // making it impossible to interact with the content\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `<td>` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Set the cursor for non-`<button>` buttons\n//\n// Details at https://github.com/twbs/bootstrap/pull/30562\n[role=\"button\"] {\n cursor: pointer;\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap Reboot v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","/*!\n * Bootstrap Reboot v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n &:hover { @content; }\n}\n\n@mixin hover-focus() {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus() {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active() {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n"]} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/dist/css/bootstrap.css b/npm_assets/node_modules/bootstrap/dist/css/bootstrap.css index 36bfb2dd36..a3171bef4d 100644 --- a/npm_assets/node_modules/bootstrap/dist/css/bootstrap.css +++ b/npm_assets/node_modules/bootstrap/dist/css/bootstrap.css @@ -1,5 +1,5 @@ /*! - * Bootstrap v4.5.2 (https://getbootstrap.com/) + * Bootstrap v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors * Copyright 2011-2020 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) @@ -216,6 +216,7 @@ caption { th { text-align: inherit; + text-align: -webkit-match-parent; } label { @@ -3750,6 +3751,8 @@ input[type="button"].btn-block { display: block; min-height: 1.5rem; padding-left: 1.5rem; + -webkit-print-color-adjust: exact; + color-adjust: exact; } .custom-control-inline { @@ -5289,6 +5292,7 @@ a.badge-dark:focus, a.badge-dark.focus { position: absolute; top: 0; right: 0; + z-index: 2; padding: 0.75rem 1.25rem; color: inherit; } @@ -10163,7 +10167,7 @@ a.text-dark:hover, a.text-dark:focus { .text-break { word-break: break-word !important; - overflow-wrap: break-word !important; + word-wrap: break-word !important; } .text-reset { diff --git a/npm_assets/node_modules/bootstrap/dist/css/bootstrap.css.map b/npm_assets/node_modules/bootstrap/dist/css/bootstrap.css.map index 98963f52c9..549dbb45ee 100644 --- a/npm_assets/node_modules/bootstrap/dist/css/bootstrap.css.map +++ b/npm_assets/node_modules/bootstrap/dist/css/bootstrap.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../scss/bootstrap.scss","bootstrap.css","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_functions.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_interactions.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"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EsHE,wBAAwB;AFpH1B;;AE4HA;EACE,aAAa;EACb,0BAA0B;AFzH5B;;AEgIA;EACE,qBAAqB;AF7HvB;;AEgIA;EACE,kBAAkB;EAClB,eAAe;AF7HjB;;AEgIA;EACE,aAAa;AF7Hf;;AAEA;EEiIE,wBAAwB;AF/H1B;;AMzVA;;EAEE,qBHqSuC;EGnSvC,gBHqS+B;EGpS/B,gBHqS+B;AHsDjC;;AMvVA;EFgHM,iBAtCY;AJiRlB;;AM1VA;EF+GM,eAtCY;AJqRlB;;AM7VA;EF8GM,kBAtCY;AJyRlB;;AMhWA;EF6GM,iBAtCY;AJ6RlB;;AMnWA;EF4GM,kBAtCY;AJiSlB;;AMtWA;EF2GM,eAtCY;AJqSlB;;AMxWA;EFyGM,kBAtCY;EEjEhB,gBHuS+B;AHoEjC;;AMvWA;EFmGM,eAtCY;EE3DhB,gBH0R+B;EGzR/B,gBHiR+B;AHyFjC;;AMxWA;EF8FM,iBAtCY;EEtDhB,gBHsR+B;EGrR/B,gBH4Q+B;AH+FjC;;AMzWA;EFyFM,iBAtCY;EEjDhB,gBHkR+B;EGjR/B,gBHuQ+B;AHqGjC;;AM1WA;EFoFM,iBAtCY;EE5ChB,gBH8Q+B;EG7Q/B,gBHkQ+B;AH2GjC;;AEhVA;EIpBE,gBHgFW;EG/EX,mBH+EW;EG9EX,SAAS;EACT,wCHzCa;AHiZf;;AMhWA;;EFMI,cAAW;EEHb,gBH0N+B;AHyIjC;;AMhWA;;EAEE,cHkQgC;EGjQhC,yBH0QmC;AHyFrC;;AM3VA;EC/EE,eAAe;EACf,gBAAgB;AP8alB;;AM3VA;ECpFE,eAAe;EACf,gBAAgB;APmblB;;AM7VA;EACE,qBAAqB;ANgWvB;;AMjWA;EAII,oBHoP+B;AH6GnC;;AMvVA;EFjCI,cAAW;EEmCb,yBAAyB;AN0V3B;;AMtVA;EACE,mBHuBW;ECRP,kBAtCY;AJiXlB;;AMtVA;EACE,cAAc;EF7CZ,cAAW;EE+Cb,cH1GgB;AHmclB;;AM5VA;EAMI,qBAAqB;AN0VzB;;AQ7cA;ECIE,eAAe;EAGf,YAAY;AT2cd;;AQ5cA;EACE,gBL6/BwC;EK5/BxC,sBLRa;EKSb,yBLNgB;EOQd,sBP6NgC;EMpOlC,eAAe;EAGf,YAAY;ATodd;;AQtcA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Hw7ClB;;AgBp8CA;;EAQI,gBbkVgC;EajVhC,mBAAmB;EACnB,6BbJc;AHq8ClB;;AgB38CA;EAcI,sBAAsB;EACtB,gCbTc;AH08ClB;;AgBh9CA;EAmBI,6Bbbc;AH88ClB;;AgBx7CA;;EAGI,eb4T+B;AH8nCnC;;AgBj7CA;EACE,yBbnCgB;AHu9ClB;;AgBr7CA;;EAKI,yBbvCc;AH49ClB;;AgB17CA;;EAWM,wBAA4C;AhBo7ClD;;AgB/6CA;;;;EAKI,SAAS;AhBi7Cb;;AgBz6CA;EAEI,qCb1DW;AHq+Cf;;AK1+CE;EW2EI,cbvEY;EawEZ,sCbvES;AH0+Cf;;AiBt/CE;;;EAII,yBC6F4D;AlB25ClE;;AiB5/CE;;;;EAYM,qBCqF0D;AlBk6ClE;;AK5/CE;EYiBM,yBAJsC;AjBm/C9C;;AiBp/CE;;EASQ,yBARoC;AjBw/C9C;;AiB5gDE;;;EAII,yBC6F4D;AlBi7ClE;;AiBlhDE;;;;EAYM,qBCqF0D;AlBw7ClE;;AKlhDE;EYiBM,yBAJsC;AjBygD9C;;AiB1gDE;;EASQ,yBARoC;AjB8gD9C;;AiBliDE;;;EAII,yBC6F4D;AlBu8ClE;;AiBxiDE;;;;EAYM,qBCqF0D;AlB88ClE;;AKxiDE;EYiBM,yBAJsC;AjB+hD9C;;AiBhiDE;;EASQ,yBARoC;AjBoiD9C;;AiBxjDE;;;EAII,yBC6F4D;AlB69ClE;;AiB9jDE;;;;EAYM,qBCqF0D;AlBo+ClE;;AK9jDE;EYiBM,yBAJsC;AjBqjD9C;;AiBtjDE;;EASQ,yBARoC;AjB0jD9C;;AiB9kDE;;;EAII,yBC6F4D;AlBm/ClE;;AiBplDE;;;;EAYM,qBCqF0D;AlB0/ClE;;AKplDE;EYiBM,yBAJsC;AjB2kD9C;;AiB5kDE;;EASQ,yBARoC;AjBglD9C;;AiBpmDE;;;EAII,yBC6F4D;AlBygDlE;;AiB1mDE;;;;EAYM,qBCqF0D;AlBghDlE;;AK1mDE;EYiBM,yBAJsC;AjBimD9C;;AiBlmDE;;EASQ,yBARoC;AjBsmD9C;;AiB1nDE;;;EAII,yBC6F4D;AlB+hDlE;;AiBhoDE;;;;EAYM,qBCqF0D;AlBsiDlE;;AKhoDE;EYiBM,yBAJsC;AjBunD9C;;AiBxnDE;;EASQ,yBARoC;AjB4nD9C;;AiBhpDE;;;EAII,yBC6F4D;AlBqjDlE;;AiBtpDE;;;;EAYM,qBCqF0D;AlB4jDlE;;AKtpDE;EYiBM,yBAJsC;AjB6oD9C;;AiB9oDE;;EASQ,yBARoC;AjBkpD9C;;AiBtqDE;;;EAII,sCdQS;AHgqDf;;AKrqDE;EYiBM,sCAJsC;AjB4pD9C;;AiB7pDE;;EASQ,sCARoC;AjBiqD9C;;AgB3kDA;EAGM,Wb3GS;Ea4GT,yBbpGY;EaqGZ,qBb+PqD;AH60C3D;;AgBjlDA;EAWM,cb5GY;Ea6GZ,yBblHY;EamHZ,qBblHY;AH4rDlB;;AgBrkDA;EACE,Wb3Ha;Ea4Hb,yBbpHgB;AH4rDlB;;AgB1kDA;;;EAOI,qBb2OuD;AH81C3D;;AgBhlDA;EAWI,SAAS;AhBykDb;;AgBplDA;EAgBM,2Cb1IS;AHktDf;;AK7sDE;EW4IM,WbjJO;EakJP,4CblJO;AHutDf;;AcrpDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBujDvC;EgB5jDG;IASK,SAAS;EhBsjDjB;AACF;;AcjqDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBmkDvC;EgBxkDG;IASK,SAAS;EhBkkDjB;AACF;;Ac7qDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhB+kDvC;EgBplDG;IASK,SAAS;EhB8kDjB;AACF;;AczrDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhB2lDvC;EgBhmDG;IASK,SAAS;EhB0lDjB;AACF;;AgBzmDA;EAOQ,cAAc;EACd,WAAW;EACX,gBAAgB;EAChB,iCAAiC;AhBsmDzC;;AgBhnDA;EAcU,SAAS;AhBsmDnB;;AmBnxDA;EACE,cAAc;EACd,WAAW;EACX,mCD8G8D;EC7G9D,yBhBwXkC;ECnQ9B,eAtCY;Ee5EhB,gBhBkR+B;EgBjR/B,gBhBsR+B;EgBrR/B,chBDgB;EgBEhB,sBhBTa;EgBUb,4BAA4B;EAC5B,yBhBPgB;EOOd,sBP6NgC;EiB/N9B,wEjBse4F;AHmzClG;;AoBrxDM;EDdN;ICeQ,gBAAgB;EpByxDtB;AACF;;AmBzyDA;EAsBI,6BAA6B;EAC7B,SAAS;AnBuxDb;;AmB9yDA;EA4BI,kBAAkB;EAClB,0BhBrBc;AH2yDlB;;AqB5yDE;EACE,clBAc;EkBCd,sBlBRW;EkBSX,qBlBodsE;EkBndtE,UAAU;EAKR,gDlBaW;AH8xDjB;;AmB3zDA;EAqCI,chB9Bc;EgBgCd,UAAU;AnByxDd;;AmBh0DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnByxDd;;AmBh0DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnByxDd;;AmBh0DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnByxDd;;AmBh0DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnByxDd;;AmBh0DA;EAiDI,yBhB9Cc;EgBgDd,UAAU;AnBkxDd;;AmB9wDA;;;;EAKI,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;AnBgxDpB;;AmB5wDA;EAOI,chB/Dc;EgBgEd,sBhBvEW;AHg1Df;;AmBpwDA;;EAEE,cAAc;EACd,WAAW;AnBuwDb;;AmB7vDA;EACE,iCDsB8D;ECrB9D,oCDqB8D;ECpB9D,gBAAgB;Ef3Bd,kBAAW;Ee6Bb,gBhB+L+B;AHikDjC;;AmB7vDA;EACE,+BDc8D;ECb9D,kCDa8D;EdQ1D,kBAtCY;EemBhB,gBhB6H+B;AHmoDjC;;AmB7vDA;EACE,gCDO8D;ECN9D,mCDM8D;EdQ1D,mBAtCY;Ee0BhB,gBhBuH+B;AHyoDjC;;AmBvvDA;EACE,cAAc;EACd,WAAW;EACX,mBAA2B;EAC3B,gBAAgB;EfDZ,eAtCY;EeyChB,gBhBkK+B;EgBjK/B,chBnHgB;EgBoHhB,6BAA6B;EAC7B,yBAAyB;EACzB,mBAAmC;AnB0vDrC;;AmBpwDA;EAcI,gBAAgB;EAChB,eAAe;AnB0vDnB;;AmB9uDA;EACE,kCDjC8D;ECkC9D,uBhBmPiC;EC7Q7B,mBAtCY;EekEhB,gBhB+E+B;EOxN7B,qBP+N+B;AH4pDnC;;AmB9uDA;EACE,gCDzC8D;EC0C9D,oBhBgPgC;EClR5B,kBAtCY;Ee0EhB,gBhBsE+B;EOvN7B,qBP8N+B;AHqqDnC;;AmB7uDA;EAGI,YAAY;AnB8uDhB;;AmB1uDA;EACE,YAAY;AnB6uDd;;AmBruDA;EACE,mBhByU0C;AH+5C5C;;AmBruDA;EACE,cAAc;EACd,mBhB0T4C;AH86C9C;;AmBhuDA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,kBAA0C;EAC1C,iBAAyC;AnBmuD3C;;AmBvuDA;;EAQI,kBAA0C;EAC1C,iBAAyC;AnBouD7C;;AmB3tDA;EACE,kBAAkB;EAClB,cAAc;EACd,qBhB+R6C;AH+7C/C;;AmB3tDA;EACE,kBAAkB;EAClB,kBhB2R2C;EgB1R3C,qBhByR6C;AHq8C/C;;AmBjuDA;;EAQI,chBzNc;AHu7DlB;;AmB1tDA;EACE,gBAAgB;AnB6tDlB;;AmB1tDA;EACE,2BAAoB;EAApB,oBAAoB;EACpB,sBAAmB;EAAnB,mBAAmB;EACnB,eAAe;EACf,qBhB4Q4C;AHi9C9C;;AmBjuDA;EAQI,gBAAgB;EAChB,aAAa;EACb,uBhBuQ4C;EgBtQ5C,cAAc;AnB6tDlB;;AqB16DE;EACE,aAAa;EACb,WAAW;EACX,mBlByc0C;EChb1C,cAAW;EiBvBX,clBPa;AHo7DjB;;AqB16DE;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlB8xBqC;EkB7xBrC,iBAAiB;EjBmEf,mBAtCY;EiB3Bd,gBlBsO6B;EkBrO7B,WlBxDW;EkByDX,wClBtBa;EOxBb,sBP6NgC;AH+vDpC;;AqB98DI;;;;EAuCE,cAAc;ArB86DpB;;AqBr9DI;EA6CE,qBlBnCW;EkBsCT,oCHuCwD;EGtCxD,iRHvB0E;EGwB1E,4BAA4B;EAC5B,2DAA6D;EAC7D,gEHmCwD;AlBu4DhE;;AqB99DI;EAwDI,qBlB9CS;EkB+CT,gDlB/CS;AHy9DjB;;AqBn+DI;EAkEI,oCHqBwD;EGpBxD,kFHoBwD;AlBi5DhE;;AqBx+DI;EA0EE,qBlBhEW;EkBmET,uCHUwD;EGTxD,ujBAA8J;ArBg6DtK;;AqB9+DI;EAkFI,qBlBxES;EkByET,gDlBzES;AHy+DjB;;AqBn/DI;EA2FI,clBjFS;AH6+DjB;;AqBv/DI;;;EAgGI,cAAc;ArB65DtB;;AqB7/DI;EAwGI,clB9FS;AHu/DjB;;AqBjgEI;EA2GM,qBlBjGO;AH2/DjB;;AqBrgEI;EAiHM,qBAAkC;EC3IxC,yBD4I+C;ArBw5DnD;;AqB1gEI;EAwHM,gDlB9GO;AHogEjB;;AqB9gEI;EA4HM,qBlBlHO;AHwgEjB;;AqBlhEI;EAsII,qBlB5HS;AH4gEjB;;AqBthEI;EA2IM,qBlBjIO;EkBkIP,gDlBlIO;AHihEjB;;AqB/gEE;EACE,aAAa;EACb,WAAW;EACX,mBlByc0C;EChb1C,cAAW;EiBvBX,clBVa;AH4hEjB;;AqB/gEE;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlB8xBqC;EkB7xBrC,iBAAiB;EjBmEf,mBAtCY;EiB3Bd,gBlBsO6B;EkBrO7B,WlBxDW;EkByDX,wClBzBa;EOrBb,sBP6NgC;AHo2DpC;;AqBnjEI;;;;EAuCE,cAAc;ArBmhEpB;;AqB1jEI;EA6CE,qBlBtCW;EkByCT,oCHuCwD;EGtCxD,4UHvB0E;EGwB1E,4BAA4B;EAC5B,2DAA6D;EAC7D,gEHmCwD;AlB4+DhE;;AqBnkEI;EAwDI,qBlBjDS;EkBkDT,gDlBlDS;AHikEjB;;AqBxkEI;EAkEI,oCHqBwD;EGpBxD,kFHoBwD;AlBs/DhE;;AqB7kEI;EA0EE,qBlBnEW;EkBsET,uCHUwD;EGTxD,knBAA8J;ArBqgEtK;;AqBnlEI;EAkFI,qBlB3ES;EkB4ET,gDlB5ES;AHilEjB;;AqBxlEI;EA2FI,clBpFS;AHqlEjB;;AqB5lEI;;;EAgGI,cAAc;ArBkgEtB;;AqBlmEI;EAwGI,clBjGS;AH+lEjB;;AqBtmEI;EA2GM,qBlBpGO;AHmmEjB;;AqB1mEI;EAiHM,qBAAkC;EC3IxC,yBD4I+C;ArB6/DnD;;AqB/mEI;EAwHM,gDlBjHO;AH4mEjB;;AqBnnEI;EA4HM,qBlBrHO;AHgnEjB;;AqBvnEI;EAsII,qBlB/HS;AHonEjB;;AqB3nEI;EA2IM,qBlBpIO;EkBqIP,gDlBrIO;AHynEjB;;AmB94DA;EACE,oBAAa;EAAb,aAAa;EACb,uBAAmB;EAAnB,mBAAmB;EACnB,sBAAmB;EAAnB,mBAAmB;AnBi5DrB;;AmBp5DA;EASI,WAAW;AnB+4Df;;Ac9mEI;EKsNJ;IAeM,oBAAa;IAAb,aAAa;IACb,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;IACvB,gBAAgB;EnB84DpB;EmBh6DF;IAuBM,oBAAa;IAAb,aAAa;IACb,kBAAc;IAAd,cAAc;IACd,uBAAmB;IAAnB,mBAAmB;IACnB,sBAAmB;IAAnB,mBAAmB;IACnB,gBAAgB;EnB44DpB;EmBv6DF;IAgCM,qBAAqB;IACrB,WAAW;IACX,sBAAsB;EnB04D1B;EmB56DF;IAuCM,qBAAqB;EnBw4DzB;EmB/6DF;;IA4CM,WAAW;EnBu4Df;EmBn7DF;IAkDM,oBAAa;IAAb,aAAa;IACb,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;IACvB,WAAW;IACX,eAAe;EnBo4DnB;EmB17DF;IAyDM,kBAAkB;IAClB,oBAAc;IAAd,cAAc;IACd,aAAa;IACb,qBhB8KwC;IgB7KxC,cAAc;EnBo4DlB;EmBj8DF;IAiEM,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;EnBm4D3B;EmBr8DF;IAqEM,gBAAgB;EnBm4DpB;AACF;;AuBrtEA;EACE,qBAAqB;EAErB,gBpBsR+B;EoBrR/B,cpBMgB;EoBLhB,kBAAkB;EAGlB,sBAAsB;EACtB,yBAAiB;EAAjB,sBAAiB;EAAjB,qBAAiB;EAAjB,iBAAiB;EACjB,6BAA6B;EAC7B,6BAA2C;ECuF3C,yBrB0RkC;ECnQ9B,eAtCY;EoBiBhB,gBrB0L+B;EOlR7B,sBP6NgC;EiB/N9B,qIjB+a6I;AH4yDnJ;;AoBvtEM;EGdN;IHeQ,gBAAgB;EpB2tEtB;AACF;;AKruEE;EkBUE,cpBNc;EoBOd,qBAAqB;AvB+tEzB;;AuBhvEA;EAsBI,UAAU;EACV,gDpBMa;AHwtEjB;;AuBrvEA;EA6BI,apBgZ6B;AH40DjC;;AuBzvEA;EAkCI,eAAsD;AvB2tE1D;;AuB7sEA;;EAEE,oBAAoB;AvBgtEtB;;AuBvsEE;EC3DA,WrBCa;EmBDX,yBnB6Ba;EqB3Bf,qBrB2Be;AH2uEjB;;AKlwEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB+wE7H;;AwBnwEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBiwEvF;;AwB5vEE;EAEE,WrB1BW;EqB2BX,yBrBCa;EqBAb,qBrBAa;AH8vEjB;;AwBvvEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBmyEnN;;AwBpvEI;;EAKI,gDAAiF;AxBovEzF;;AuB5uEE;EC3DA,WrBCa;EmBDX,yBnBOc;EqBLhB,qBrBKgB;AHsyElB;;AKvyEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBozE7H;;AwBxyEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxBsyEvF;;AwBjyEE;EAEE,WrB1BW;EqB2BX,yBrBrBc;EqBsBd,qBrBtBc;AHyzElB;;AwB5xEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBw0EnN;;AwBzxEI;;EAKI,iDAAiF;AxByxEzF;;AuBjxEE;EC3DA,WrBCa;EmBDX,yBnBoCa;EqBlCf,qBrBkCe;AH8yEjB;;AK50EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBy1E7H;;AwB70EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxB20EvF;;AwBt0EE;EAEE,WrB1BW;EqB2BX,yBrBQa;EqBPb,qBrBOa;AHi0EjB;;AwBj0EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB62EnN;;AwB9zEI;;EAKI,+CAAiF;AxB8zEzF;;AuBtzEE;EC3DA,WrBCa;EmBDX,yBnBsCa;EqBpCf,qBrBoCe;AHi1EjB;;AKj3EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB83E7H;;AwBl3EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBg3EvF;;AwB32EE;EAEE,WrB1BW;EqB2BX,yBrBUa;EqBTb,qBrBSa;AHo2EjB;;AwBt2EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBk5EnN;;AwBn2EI;;EAKI,gDAAiF;AxBm2EzF;;AuB31EE;EC3DA,crBUgB;EmBVd,yBnBmCa;EqBjCf,qBrBiCe;AHy3EjB;;AKt5EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxBm6E7H;;AwBv5EE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBq5EvF;;AwBh5EE;EAEE,crBjBc;EqBkBd,yBrBOa;EqBNb,qBrBMa;AH44EjB;;AwB34EE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxBu7EnN;;AwBx4EI;;EAKI,gDAAiF;AxBw4EzF;;AuBh4EE;EC3DA,WrBCa;EmBDX,yBnBiCa;EqB/Bf,qBrB+Be;AHg6EjB;;AK37EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBw8E7H;;AwB57EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxB07EvF;;AwBr7EE;EAEE,WrB1BW;EqB2BX,yBrBKa;EqBJb,qBrBIa;AHm7EjB;;AwBh7EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB49EnN;;AwB76EI;;EAKI,+CAAiF;AxB66EzF;;AuBr6EE;EC3DA,crBUgB;EmBVd,yBnBEc;EqBAhB,qBrBAgB;AHo+ElB;;AKh+EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxB6+E7H;;AwBj+EE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxB+9EvF;;AwB19EE;EAEE,crBjBc;EqBkBd,yBrB1Bc;EqB2Bd,qBrB3Bc;AHu/ElB;;AwBr9EE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxBigFnN;;AwBl9EI;;EAKI,iDAAiF;AxBk9EzF;;AuB18EE;EC3DA,WrBCa;EmBDX,yBnBSc;EqBPhB,qBrBOgB;AHkgFlB;;AKrgFE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBkhF7H;;AwBtgFE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,8CAAiF;AxBogFvF;;AwB//EE;EAEE,WrB1BW;EqB2BX,yBrBnBc;EqBoBd,qBrBpBc;AHqhFlB;;AwB1/EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBsiFnN;;AwBv/EI;;EAKI,8CAAiF;AxBu/EzF;;AuBz+EE;ECPA,crB7Be;EqB8Bf,qBrB9Be;AHkhFjB;;AKziFE;EmBwDE,WrB7DW;EqB8DX,yBrBlCa;EqBmCb,qBrBnCa;AHwhFjB;;AwBl/EE;EAEE,+CrBxCa;AH4hFjB;;AwBj/EE;EAEE,crB7Ca;EqB8Cb,6BAA6B;AxBm/EjC;;AwBh/EE;;EAGE,WrBhFW;EqBiFX,yBrBrDa;EqBsDb,qBrBtDa;AHwiFjB;;AwBh/EI;;EAKI,+CrB7DS;AH6iFjB;;AuBzgFE;ECPA,crBnDgB;EqBoDhB,qBrBpDgB;AHwkFlB;;AKzkFE;EmBwDE,WrB7DW;EqB8DX,yBrBxDc;EqByDd,qBrBzDc;AH8kFlB;;AwBlhFE;EAEE,iDrB9Dc;AHklFlB;;AwBjhFE;EAEE,crBnEc;EqBoEd,6BAA6B;AxBmhFjC;;AwBhhFE;;EAGE,WrBhFW;EqBiFX,yBrB3Ec;EqB4Ed,qBrB5Ec;AH8lFlB;;AwBhhFI;;EAKI,iDrBnFU;AHmmFlB;;AuBziFE;ECPA,crBtBe;EqBuBf,qBrBvBe;AH2kFjB;;AKzmFE;EmBwDE,WrB7DW;EqB8DX,yBrB3Ba;EqB4Bb,qBrB5Ba;AHilFjB;;AwBljFE;EAEE,+CrBjCa;AHqlFjB;;AwBjjFE;EAEE,crBtCa;EqBuCb,6BAA6B;AxBmjFjC;;AwBhjFE;;EAGE,WrBhFW;EqBiFX,yBrB9Ca;EqB+Cb,qBrB/Ca;AHimFjB;;AwBhjFI;;EAKI,+CrBtDS;AHsmFjB;;AuBzkFE;ECPA,crBpBe;EqBqBf,qBrBrBe;AHymFjB;;AKzoFE;EmBwDE,WrB7DW;EqB8DX,yBrBzBa;EqB0Bb,qBrB1Ba;AH+mFjB;;AwBllFE;EAEE,gDrB/Ba;AHmnFjB;;AwBjlFE;EAEE,crBpCa;EqBqCb,6BAA6B;AxBmlFjC;;AwBhlFE;;EAGE,WrBhFW;EqBiFX,yBrB5Ca;EqB6Cb,qBrB7Ca;AH+nFjB;;AwBhlFI;;EAKI,gDrBpDS;AHooFjB;;AuBzmFE;ECPA,crBvBe;EqBwBf,qBrBxBe;AH4oFjB;;AKzqFE;EmBwDE,crBpDc;EqBqDd,yBrB5Ba;EqB6Bb,qBrB7Ba;AHkpFjB;;AwBlnFE;EAEE,+CrBlCa;AHspFjB;;AwBjnFE;EAEE,crBvCa;EqBwCb,6BAA6B;AxBmnFjC;;AwBhnFE;;EAGE,crBvEc;EqBwEd,yBrB/Ca;EqBgDb,qBrBhDa;AHkqFjB;;AwBhnFI;;EAKI,+CrBvDS;AHuqFjB;;AuBzoFE;ECPA,crBzBe;EqB0Bf,qBrB1Be;AH8qFjB;;AKzsFE;EmBwDE,WrB7DW;EqB8DX,yBrB9Ba;EqB+Bb,qBrB/Ba;AHorFjB;;AwBlpFE;EAEE,+CrBpCa;AHwrFjB;;AwBjpFE;EAEE,crBzCa;EqB0Cb,6BAA6B;AxBmpFjC;;AwBhpFE;;EAGE,WrBhFW;EqBiFX,yBrBjDa;EqBkDb,qBrBlDa;AHosFjB;;AwBhpFI;;EAKI,+CrBzDS;AHysFjB;;AuBzqFE;ECPA,crBxDgB;EqByDhB,qBrBzDgB;AH6uFlB;;AKzuFE;EmBwDE,crBpDc;EqBqDd,yBrB7Dc;EqB8Dd,qBrB9Dc;AHmvFlB;;AwBlrFE;EAEE,iDrBnEc;AHuvFlB;;AwBjrFE;EAEE,crBxEc;EqByEd,6BAA6B;AxBmrFjC;;AwBhrFE;;EAGE,crBvEc;EqBwEd,yBrBhFc;EqBiFd,qBrBjFc;AHmwFlB;;AwBhrFI;;EAKI,iDrBxFU;AHwwFlB;;AuBzsFE;ECPA,crBjDgB;EqBkDhB,qBrBlDgB;AHswFlB;;AKzwFE;EmBwDE,WrB7DW;EqB8DX,yBrBtDc;EqBuDd,qBrBvDc;AH4wFlB;;AwBltFE;EAEE,8CrB5Dc;AHgxFlB;;AwBjtFE;EAEE,crBjEc;EqBkEd,6BAA6B;AxBmtFjC;;AwBhtFE;;EAGE,WrBhFW;EqBiFX,yBrBzEc;EqB0Ed,qBrB1Ec;AH4xFlB;;AwBhtFI;;EAKI,8CrBjFU;AHiyFlB;;AuB9tFA;EACE,gBpB4M+B;EoB3M/B,cpBjDe;EoBkDf,qBpB2F4C;AHsoF9C;;AK1yFE;EkB4EE,cpByF8D;EoBxF9D,0BpByF+C;AHyoFnD;;AuBzuFA;EAYI,0BpBoF+C;AH6oFnD;;AuB7uFA;EAiBI,cpBtFc;EoBuFd,oBAAoB;AvBguFxB;;AuBrtFA;ECPE,oBrBySgC;EClR5B,kBAtCY;EoBiBhB,gBrB+H+B;EOvN7B,qBP8N+B;AH2lFnC;;AuBxtFA;ECXE,uBrBoSiC;EC7Q7B,mBAtCY;EoBiBhB,gBrBgI+B;EOxN7B,qBP+N+B;AHimFnC;;AuBttFA;EACE,cAAc;EACd,WAAW;AvBytFb;;AuB3tFA;EAMI,kBpBsT+B;AHm6EnC;;AuBptFA;;;EAII,WAAW;AvBstFf;;AyBj2FA;ELgBM,gCjBiP2C;AHomFjD;;AoBj1FM;EKpBN;ILqBQ,gBAAgB;EpBq1FtB;AACF;;AyB32FA;EAII,UAAU;AzB22Fd;;AyBv2FA;EAEI,aAAa;AzBy2FjB;;AyBr2FA;EACE,kBAAkB;EAClB,SAAS;EACT,gBAAgB;ELDZ,6BjBkPwC;AHwnF9C;;AoBt2FM;EKNN;ILOQ,gBAAgB;EpB02FtB;AACF;;A0B/3FA;;;;EAIE,kBAAkB;A1Bk4FpB;;A0B/3FA;EACE,mBAAmB;A1Bk4FrB;;A2B92FI;EACE,qBAAqB;EACrB,oBxB+N0C;EwB9N1C,uBxB6N0C;EwB5N1C,WAAW;EAhCf,uBAA8B;EAC9B,qCAA4C;EAC5C,gBAAgB;EAChB,oCAA2C;A3Bk5F7C;;A2B71FI;EACE,cAAc;A3Bg2FpB;;A0B14FA;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,avBupBsC;EuBtpBtC,aAAa;EACb,WAAW;EACX,gBvB6tBuC;EuB5tBvC,iBAA8B;EAC9B,oBAA4B;EtBsGxB,eAtCY;EsB9DhB,cvBXgB;EuBYhB,gBAAgB;EAChB,gBAAgB;EAChB,sBvBvBa;EuBwBb,4BAA4B;EAC5B,qCvBfa;EOCX,sBP6NgC;AH+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Aa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,yB3B2RkC;E2B1RlC,gBAAgB;E1BuBZ,eAtCY;E0BiBhB,gB3BqL+B;E2BpL/B,gB3ByL+B;E2BxL/B,c3B9FgB;E2B+FhB,kBAAkB;EAClB,mBAAmB;EACnB,yB3BtGgB;E2BuGhB,yB3BrGgB;EOOd,sBP6NgC;AH2nGpC;;A8BtwGA;;EAkBI,aAAa;A9ByvGjB;;A8B/uGA;;EAEE,gCZX8D;AlB6vGhE;;A8B/uGA;;;;;;EAME,oB3BsQgC;EClR5B,kBAtCY;E0BoDhB,gB3B4F+B;EOvN7B,qBP8N+B;AHgpGnC;;A8B/uGA;;EAEE,kCZ5B8D;AlB8wGhE;;A8B/uGA;;;;;;EAME,uB3BgPiC;EC7Q7B,mBAtCY;E0BqEhB,gB3B4E+B;EOxN7B,qBP+N+B;AHgqGnC;;A8B/uGA;;EAEE,sBAA0E;A9BkvG5E;;A8BvuGA;;;;;;EpB7II,0BoBmJ4B;EpBlJ5B,6BoBkJ4B;A9B2uGhC;;A8BxuGA;;;;;;EpBxII,yBoB8I2B;EpB7I3B,4BoB6I2B;A9B4uG/B;;A+Bj6GA;EACE,kBAAkB;EAClB,UAAU;EACV,cAAc;EACd,kBAA+C;EAC/C,oBAAqE;A/Bo6GvE;;A+Bj6GA;EACE,2BAAoB;EAApB,oBAAoB;EACpB,kB5Bwf0C;AH46F5C;;A+Bj6GA;EACE,kBAAkB;EAClB,OAAO;EACP,WAAW;EACX,W5Bof0C;E4Bnf1C,eAAkF;EAClF,UAAU;A/Bo6GZ;;A+B16GA;EASI,W5BxBW;E4ByBX,qB5BGa;EmB7Bb,yBnB6Ba;AHm6GjB;;A+Bh7GA;EAoBM,gD5BPW;AHu6GjB;;A+Bp7GA;EAyBI,qB5BqbsE;AH0+F1E;;A+Bx7GA;EA6BI,W5B5CW;E4B6CX,yB5Bif8E;E4Bhf9E,qB5Bgf8E;AH+6FlF;;A+B97GA;EAuCM,c5BhDY;AH28GlB;;A+Bl8GA;EA0CQ,yB5BvDU;AHm9GlB;;A+Bl5GA;EACE,kBAAkB;EAClB,gBAAgB;EAEhB,mBAAmB;A/Bo5GrB;;A+Bx5GA;EASI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5BubwC;E4BtbxC,Y5BsbwC;E4BrbxC,oBAAoB;EACpB,WAAW;EACX,sB5BpFW;E4BqFX,yB5BgJ6B;AHmwGjC;;A+Br6GA;EAwBI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5BwawC;E4BvaxC,Y5BuawC;E4BtaxC,WAAW;EACX,mCAAgE;A/Bi5GpE;;A+Bx4GA;ErBhGI,sBP6NgC;AH+wGpC;;A+B54GA;EAOM,kOb/D4E;AlBw8GlF;;A+Bh5GA;EAaM,qB5B5FW;EmB7Bb,yBnB6Ba;AHo+GjB;;A+Br5GA;EAkBM,+Kb1E4E;AlBi9GlF;;A+Bz5GA;ET5GI,wCnB6Ba;AH4+GjB;;A+B75GA;ET5GI,wCnB6Ba;AHg/GjB;;A+B73GA;EAGI,kB5ByZ+C;AHq+FnD;;A+Bj4GA;EAQM,8KbpG4E;AlBi+GlF;;A+Br4GA;EThJI,wCnB6Ba;AH4/GjB;;A+Bj3GA;EACE,qBAA2D;A/Bo3G7D;;A+Br3GA;EAKM,cAAqD;EACrD,c5BiY+E;E4BhY/E,mBAAmB;EAEnB,qB5B+X4E;AHo/FlF;;A+B53GA;EAaM,wBbpE0D;EaqE1D,0BbrE0D;EasE1D,uBblD0D;EamD1D,wBbnD0D;EaoD1D,yB5BnLY;E4BqLZ,qB5BqX4E;EiBtiB5E,iJjBwf+H;EiBxf/H,yIjBwf+H;EiBxf/H,8KjBwf+H;AH4iGrI;;AoBhiHM;EW0JN;IXzJQ,gBAAgB;EpBoiHtB;AACF;;A+B54GA;EA0BM,sB5BjMS;E4BkMT,sCAA4E;EAA5E,8BAA4E;A/Bs3GlF;;A+Bj5GA;ETxKI,wCnB6Ba;AHgiHjB;;A+Bx2GA;EACE,qBAAqB;EACrB,WAAW;EACX,mCbvG8D;EawG9D,0C5BmKkC;ECnQ9B,eAtCY;E2ByIhB,gB5B6D+B;E4B5D/B,gB5BiE+B;E4BhE/B,c5BtNgB;E4BuNhB,sBAAsB;EACtB,uO5BkW+I;E4BjW/I,yB5B5NgB;EOOd,sBP6NgC;E4BLlC,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/By2GlB;;A+Bx3GA;EAkBI,qB5BuPsE;E4BtPtE,UAAU;EAKR,gD5BhNW;AHsjHjB;;A+B93GA;EAiCM,c5B9OY;E4B+OZ,sB5BtPS;AHulHf;;A+Bn4GA;EAwCI,YAAY;EACZ,sB5B8HgC;E4B7HhC,sBAAsB;A/B+1G1B;;A+Bz4GA;EA8CI,c5B5Pc;E4B6Pd,yB5BjQc;AHgmHlB;;A+B94GA;EAoDI,aAAa;A/B81GjB;;A+Bl5GA;EAyDI,kBAAkB;EAClB,0B5BvQc;AHomHlB;;A+Bz1GA;EACE,kCbnK8D;EaoK9D,oB5BgHkC;E4B/GlC,uB5B+GkC;E4B9GlC,oB5B+GiC;EC7Q7B,mBAtCY;AJiiHlB;;A+Bz1GA;EACE,gCb3K8D;Ea4K9D,mB5B6GiC;E4B5GjC,sB5B4GiC;E4B3GjC,kB5B4GgC;EClR5B,kBAtCY;AJyiHlB;;A+Bp1GA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,WAAW;EACX,mCb3L8D;Ea4L9D,gBAAgB;A/Bu1GlB;;A+Bp1GA;EACE,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,mCbnM8D;EaoM9D,SAAS;EACT,UAAU;A/Bu1GZ;;A+B71GA;EASI,qB5BqKsE;E4BpKtE,gD5B7Ra;AHqnHjB;;A+Bl2GA;;EAgBI,yB5B7Tc;AHopHlB;;A+Bv2GA;EAqBM,iB5B4TQ;AH0hGd;;A+B32GA;EA0BI,0BAA0B;A/Bq1G9B;;A+Bj1GA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,OAAO;EACP,UAAU;EACV,mCbnO8D;EaoO9D,yB5BuCkC;E4BrClC,gB5B9D+B;E4B+D/B,gB5B1D+B;E4B2D/B,c5BjVgB;E4BkVhB,sB5BzVa;E4B0Vb,yB5BtVgB;EOOd,sBP6NgC;AHs8GpC;;A+Bj2GA;EAkBI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,UAAU;EACV,cAAc;EACd,6BbrP4D;EasP5D,yB5BqBgC;E4BpBhC,gB5B1E6B;E4B2E7B,c5BjWc;E4BkWd,iBAAiB;ET1WjB,yBnBGc;E4ByWd,oBAAoB;ErBhWpB,kCqBiWgF;A/Bm1GpF;;A+Bz0GA;EACE,WAAW;EACX,cb3Q2B;Ea4Q3B,UAAU;EACV,6BAA6B;EAC7B,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/B40GlB;;A+Bj1GA;EAQI,aAAa;A/B60GjB;;A+Br1GA;EAY8B,gE5BtWb;AHmrHjB;;A+Bz1GA;EAa8B,gE5BvWb;AHurHjB;;A+B71GA;EAc8B,gE5BxWb;AH2rHjB;;A+Bj2GA;EAkBI,SAAS;A/Bm1Gb;;A+Br2GA;EAsBI,W5BqN6C;E4BpN7C,Y5BoN6C;E4BnN7C,oBAAyE;ET/YzE,yBnB6Ba;E4BoXb,S5BoN0C;EOzlB1C,mBP0lB6C;EiB5lB3C,oHjBwf+H;EiBxf/H,4GjBwf+H;E4B7GjI,wBAAgB;EAAhB,gBAAgB;A/Bk1GpB;;AoBztHM;EWyWN;IXxWQ,wBAAgB;IAAhB,gBAAgB;EpB6tHtB;AACF;;A+Bt3GA;ETvXI,yBnB0mB2E;AHuoG/E;;A+B13GA;EAsCI,W5B8LoC;E4B7LpC,c5B8LqC;E4B7LrC,kBAAkB;EAClB,e5B6LuC;E4B5LvC,yB5B7Zc;E4B8Zd,yBAAyB;ErBtZzB,mBPmlBoC;AH4pGxC;;A+Bp4GA;EAiDI,W5B0L6C;E4BzL7C,Y5ByL6C;EmBlmB7C,yBnB6Ba;E4B8Yb,S5B0L0C;EOzlB1C,mBP0lB6C;EiB5lB3C,iHjBwf+H;EiBxf/H,4GjBwf+H;E4BnFjI,qBAAgB;EAAhB,gBAAgB;A/Bs1GpB;;AoBvvHM;EWyWN;IXxWQ,qBAAgB;IAAhB,gBAAgB;EpB2vHtB;AACF;;A+Bp5GA;ETvXI,yBnB0mB2E;AHqqG/E;;A+Bx5GA;EAgEI,W5BoKoC;E4BnKpC,c5BoKqC;E4BnKrC,kBAAkB;EAClB,e5BmKuC;E4BlKvC,yB5Bvbc;E4Bwbd,yBAAyB;ErBhbzB,mBPmlBoC;AH0rGxC;;A+Bl6GA;EA2EI,W5BgK6C;E4B/J7C,Y5B+J6C;E4B9J7C,aAAa;EACb,oB5BpE+B;E4BqE/B,mB5BrE+B;EmBjY/B,yBnB6Ba;E4B2ab,S5B6J0C;EOzlB1C,mBP0lB6C;EiB5lB3C,gHjBwf+H;EiBxf/H,4GjBwf+H;E4BtDjI,gBAAgB;A/B01GpB;;AoBxxHM;EWyWN;IXxWQ,oBAAgB;IAAhB,gBAAgB;EpB4xHtB;AACF;;A+Br7GA;ETvXI,yBnB0mB2E;AHssG/E;;A+Bz7GA;EA6FI,W5BuIoC;E4BtIpC,c5BuIqC;E4BtIrC,kBAAkB;EAClB,e5BsIuC;E4BrIvC,6BAA6B;EAC7B,yBAAyB;EACzB,oBAA4C;A/Bg2GhD;;A+Bn8GA;EAwGI,yB5B3dc;EOQd,mBPmlBoC;AHguGxC;;A+Bx8GA;EA6GI,kBAAkB;EAClB,yB5Bjec;EOQd,mBPmlBoC;AHsuGxC;;A+B98GA;EAoHM,yB5BreY;AHm0HlB;;A+Bl9GA;EAwHM,eAAe;A/B81GrB;;A+Bt9GA;EA4HM,yB5B7eY;AH20HlB;;A+B19GA;EAgIM,eAAe;A/B81GrB;;A+B99GA;EAoIM,yB5BrfY;AHm1HlB;;A+Bz1GA;;;EXtfM,4GjBwf+H;AH61GrI;;AoBj1HM;EWkfN;;;IXjfQ,gBAAgB;EpBu1HtB;AACF;;AgCx2HA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AhC22HlB;;AgCx2HA;EACE,cAAc;EACd,oB7BwqBsC;AHmsGxC;;AK12HE;E2BGE,qBAAqB;AhC22HzB;;AgCj3HA;EAWI,c7BXc;E6BYd,oBAAoB;EACpB,eAAe;AhC02HnB;;AgCl2HA;EACE,gC7BzBgB;AH83HlB;;AgCt2HA;EAII,mB7BsM6B;AHgqHjC;;AgC12HA;EAQI,6BAAgD;EtBfhD,+BPoNgC;EOnNhC,gCPmNgC;AHmqHpC;;AKl4HE;E2B8BI,qC7BpCY;AH44HlB;;AgCp3HA;EAgBM,c7BrCY;E6BsCZ,6BAA6B;EAC7B,yBAAyB;AhCw2H/B;;AgC13HA;;EAwBI,c7B5Cc;E6B6Cd,sB7BpDW;E6BqDX,kC7BrDW;AH45Hf;;AgCj4HA;EA+BI,gB7B2K6B;EOjN7B,yBsBwC4B;EtBvC5B,0BsBuC4B;AhCs2HhC;;AgC71HA;EtB1DI,sBP6NgC;AH8rHpC;;AgCj2HA;;EAOI,W7B5EW;E6B6EX,yB7BjDa;AHg5HjB;;AgCt1HA;;EAGI,kBAAc;EAAd,cAAc;EACd,kBAAkB;AhCw1HtB;;AgCp1HA;;EAGI,0BAAa;EAAb,aAAa;EACb,oBAAY;EAAZ,YAAY;EACZ,kBAAkB;AhCs1HtB;;AgC70HA;EAEI,aAAa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H5B;EiCvgIG;IA+BO,qB9B2hB6B;I8B1hB7B,oB9B0hB6B;EHi9GvC;EiC3gIG;;IAsCK,qBAAiB;IAAjB,iBAAiB;EjCy+HzB;EiC/gIG;IAqDK,+BAAwB;IAAxB,wBAAwB;IAGxB,6BAAgB;IAAhB,gBAAgB;EjC29HxB;EiCnhIG;IA4DK,aAAa;EjC09HrB;AACF;;AiC5hIA;EAyBQ,yBAAqB;EAArB,qBAAqB;EACrB,oBAA2B;EAA3B,2BAA2B;AjCugInC;;AiCjiIA;;EAQU,gBAAgB;EAChB,eAAe;AjC8hIzB;;AiCviIA;EA6BU,uBAAmB;EAAnB,mBAAmB;AjC8gI7B;;AiC3iIA;EAgCY,kBAAkB;AjC+gI9B;;AiC/iIA;EAoCY,qB9B2hB6B;E8B1hB7B,oB9B0hB6B;AHq/GzC;;AiCpjIA;;EA2CU,qBAAiB;EAAjB,iBAAiB;AjC8gI3B;;AiCzjIA;EA0DU,+BAAwB;EAAxB,wBAAwB;EAGxB,6BAAgB;EAAhB,gBAAgB;AjCigI1B;;AiC9jIA;EAiEU,aAAa;AjCigIvB;;AiCp/HA;EAEI,yB9B/MW;AHqsIf;;AKtsIE;E4BmNI,yB9BlNS;AHysIf;;AiC5/HA;EAWM,yB9BxNS;AH6sIf;;AK9sIE;E4B4NM,yB9B3NO;AHitIf;;AiCpgIA;EAkBQ,yB9B/NO;AHqtIf;;AiCxgIA;;;;EA0BM,yB9BvOS;AH4tIf;;AiC/gIA;EA+BI,yB9B5OW;E8B6OX,gC9B7OW;AHiuIf;;AiCphIA;EAoCI,mRfxM8E;AlB4rIlF;;AiCxhIA;EAwCI,yB9BrPW;AHyuIf;;AiC5hIA;EA0CM,yB9BvPS;AH6uIf;;AK9uIE;E4B2PM,yB9B1PO;AHivIf;;AiCh/HA;EAEI,W9B7QW;AH+vIf;;AKtvIE;E4BuQI,W9BhRS;AHmwIf;;AiCx/HA;EAWM,+B9BtRS;AHuwIf;;AK9vIE;E4BgRM,gC9BzRO;AH2wIf;;AiChgIA;EAkBQ,gC9B7RO;AH+wIf;;AiCpgIA;;;;EA0BM,W9BrSS;AHsxIf;;AiC3gIA;EA+BI,+B9B1SW;E8B2SX,sC9B3SW;AH2xIf;;AiChhIA;EAoCI,yRf5P8E;AlB4uIlF;;AiCphIA;EAwCI,+B9BnTW;AHmyIf;;AiCxhIA;EA0CM,W9BrTS;AHuyIf;;AK9xIE;E4B+SM,W9BxTO;AH2yIf;;AkC9yIA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,YAAY;EAEZ,qBAAqB;EACrB,sB/BJa;E+BKb,2BAA2B;EAC3B,sC/BIa;EOCX,sBP6NgC;AH+kIpC;;AkC1zIA;EAaI,eAAe;EACf,cAAc;AlCizIlB;;AkC/zIA;EAkBI,mBAAmB;EACnB,sBAAsB;AlCizI1B;;AkCp0IA;EAsBM,mBAAmB;ExBCrB,2CQgH4D;ER/G5D,4CQ+G4D;AlBmsIhE;;AkC10IA;EA2BM,sBAAsB;ExBUxB,+CQkG4D;ERjG5D,8CQiG4D;AlBysIhE;;AkCh1IA;;EAoCI,aAAa;AlCizIjB;;AkC7yIA;EAGE,kBAAc;EAAd,cAAc;EAGd,eAAe;EACf,gB/BwwByC;AHoiH3C;;AkCxyIA;EACE,sB/BkwBwC;AHyiH1C;;AkCxyIA;EACE,qBAA+B;EAC/B,gBAAgB;AlC2yIlB;;AkCxyIA;EACE,gBAAgB;AlC2yIlB;;AKh2IE;E6B0DE,qBAAqB;AlC0yIzB;;AkC5yIA;EAMI,oB/BivBuC;AHyjH3C;;AkClyIA;EACE,wB/BwuByC;E+BvuBzC,gBAAgB;EAEhB,qC/BrEa;E+BsEb,6C/BtEa;AH02If;;AkCzyIA;ExBhEI,0DwBwE8E;AlCqyIlF;;AkCjyIA;EACE,wB/B4tByC;E+B1tBzC,qC/BhFa;E+BiFb,0C/BjFa;AHo3If;;AkCvyIA;ExB5EI,0DQyH4D;AlB8vIhE;;AkC3xIA;EACE,uBAAiC;EACjC,uB/B0sBwC;E+BzsBxC,sBAAgC;EAChC,gBAAgB;AlC8xIlB;;AkC3xIA;EACE,uBAAiC;EACjC,sBAAgC;AlC8xIlC;;AkC1xIA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,gB/BqsByC;EOpzBvC,kCQyH4D;AlBoxIhE;;AkC1xIA;;;EAGE,oBAAc;EAAd,cAAc;EACd,WAAW;AlC6xIb;;AkC1xIA;;ExBjHI,2CQgH4D;ER/G5D,4CQ+G4D;AlBiyIhE;;AkC3xIA;;ExBxGI,+CQkG4D;ERjG5D,8CQiG4D;AlBuyIhE;;AkCzxIA;EAEI,mB/B6qBsD;AH8mH1D;;Ac13II;EoB6FJ;IAMI,oBAAa;IAAb,aAAa;IACb,uBAAmB;IAAnB,mBAAmB;IACnB,mB/BuqBsD;I+BtqBtD,kB/BsqBsD;EHsnHxD;EkCryIF;IAaM,gBAAY;IAAZ,YAAY;IACZ,kB/BiqBoD;I+BhqBpD,gBAAgB;IAChB,iB/B+pBoD;EH4nHxD;AACF;;AkClxIA;EAII,mB/BipBsD;AHioH1D;;Ac74II;EoBuHJ;IAQI,oBAAa;IAAb,aAAa;IACb,uBAAmB;IAAnB,mBAAmB;ElCmxIrB;EkC5xIF;IAcM,gBAAY;IAAZ,YAAY;IACZ,gBAAgB;ElCixIpB;EkChyIF;IAkBQ,cAAc;IACd,cAAc;ElCixIpB;EkCpyIF;IxBjJI,0BwB0KoC;IxBzKpC,6BwByKoC;ElC+wItC;EkCxyIF;;IA8BY,0BAA0B;ElC8wIpC;EkC5yIF;;IAmCY,6BAA6B;ElC6wIvC;EkChzIF;IxBnII,yBwB2KmC;IxB1KnC,4BwB0KmC;ElC4wIrC;EkCpzIF;;IA6CY,yBAAyB;ElC2wInC;EkCxzIF;;IAkDY,4BAA4B;ElC0wItC;AACF;;AkC9vIA;EAEI,sB/BskBsC;AH0rH1C;;Acx7II;EoBsLJ;IAMI,uB/BmlBiC;I+BnlBjC,oB/BmlBiC;I+BnlBjC,e/BmlBiC;I+BllBjC,2B/BmlBuC;I+BnlBvC,wB/BmlBuC;I+BnlBvC,mB/BmlBuC;I+BllBvC,UAAU;IACV,SAAS;ElCiwIX;EkC1wIF;IAYM,qBAAqB;IACrB,WAAW;ElCiwIf;AACF;;AkCxvIA;EACE,qBAAqB;AlC2vIvB;;AkC5vIA;EAII,gBAAgB;AlC4vIpB;;AkChwIA;EAOM,gBAAgB;ExBvOlB,6BwBwOiC;ExBvOjC,4BwBuOiC;AlC8vIrC;;AkCtwIA;ExB9OI,yBwB0P8B;ExBzP9B,0BwByP8B;AlC+vIlC;;AkC3wIA;ExBvPI,gBwBuQ0B;EACxB,mB/B9C2B;AH6yIjC;;AmCzhJA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,qBhC2hCsC;EgC1hCtC,mBhC6hCsC;EgC3hCtC,gBAAgB;EAChB,yBhCEgB;EOSd,sBP6NgC;AHozIpC;;AmCxhJA;EACE,oBAAa;EAAb,aAAa;AnC2hJf;;AmC5hJA;EAKI,oBhC+gCqC;AH4gHzC;;AmChiJA;EAQM,qBAAqB;EACrB,qBhC2gCmC;EgC1gCnC,chCRY;EgCSZ,YhCghCuC;AH4gH7C;;AmCviJA;EAsBI,0BAA0B;AnCqhJ9B;;AmC3iJA;EA0BI,qBAAqB;AnCqhJzB;;AmC/iJA;EA8BI,chC5Bc;AHijJlB;;AoC9jJA;EACE,oBAAa;EAAb,aAAa;E7BGb,eAAe;EACf,gBAAgB;EGad,sBP6NgC;AHs1IpC;;AoC/jJA;EACE,kBAAkB;EAClB,cAAc;EACd,uBjC4wBwC;EiC3wBxC,iBjCkO+B;EiCjO/B,iBjC+wBsC;EiC9wBtC,cjCuBe;EiCrBf,sBjCPa;EiCQb,yBjCLgB;AHskJlB;;AoC1kJA;EAYI,UAAU;EACV,cjC8J8D;EiC7J9D,qBAAqB;EACrB,yBjCZc;EiCad,qBjCZc;AH8kJlB;;AoCllJA;EAoBI,UAAU;EACV,UjCuwBiC;EiCtwBjC,gDjCOa;AH2jJjB;;AoC9jJA;EAGM,cAAc;E1BahB,+BP+LgC;EO9LhC,kCP8LgC;AHq3IpC;;AoCpkJA;E1BEI,gCP6MgC;EO5MhC,mCP4MgC;AH03IpC;;AoCzkJA;EAcI,UAAU;EACV,WjCxCW;EiCyCX,yBjCba;EiCcb,qBjCda;AH6kJjB;;AoChlJA;EAqBI,cjCxCc;EiCyCd,oBAAoB;EAEpB,YAAY;EACZ,sBjClDW;EiCmDX,qBjChDc;AH8mJlB;;AqCrnJE;EACE,uBlCqxBsC;EC1pBpC,kBAtCY;EiCnFd,gBlCmO6B;AHq5IjC;;AqCnnJM;E3BqCF,8BPgM+B;EO/L/B,iCP+L+B;AHm5InC;;AqCnnJM;E3BkBF,+BP8M+B;EO7M/B,kCP6M+B;AHw5InC;;AqCroJE;EACE,uBlCmxBqC;ECxpBnC,mBAtCY;EiCnFd,gBlCoO6B;AHo6IjC;;AqCnoJM;E3BqCF,8BPiM+B;EOhM/B,iCPgM+B;AHk6InC;;AqCnoJM;E3BkBF,+BP+M+B;EO9M/B,kCP8M+B;AHu6InC;;AsCnpJA;EACE,qBAAqB;EACrB,qBnCo5BsC;ECn1BpC,cAAW;EkC/Db,gBnCuR+B;EmCtR/B,cAAc;EACd,kBAAkB;EAClB,mBAAmB;EACnB,wBAAwB;E5BKtB,sBP6NgC;EiB/N9B,qIjB+a6I;AHsuInJ;;AoBjpJM;EkBfN;IlBgBQ,gBAAgB;EpBqpJtB;AACF;;AK3pJE;EiCGI,qBAAqB;AtC4pJ3B;;AsC1qJA;EAoBI,aAAa;AtC0pJjB;;AsCrpJA;EACE,kBAAkB;EAClB,SAAS;AtCwpJX;;AsCjpJA;EACE,oBnCy3BsC;EmCx3BtC,mBnCw3BsC;EO/4BpC,oBPk5BqC;AH0xHzC;;AsC5oJE;ECjDA,WpCMa;EoCLb,yBpCiCe;AHgqJjB;;AKnrJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCisJxC;;AuCpsJU;EAQJ,UAAU;EACV,+CpCsBW;AH0qJjB;;AsC3pJE;ECjDA,WpCMa;EoCLb,yBpCWgB;AHqsJlB;;AKlsJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCgtJxC;;AuCntJU;EAQJ,UAAU;EACV,iDpCAY;AH+sJlB;;AsC1qJE;ECjDA,WpCMa;EoCLb,yBpCwCe;AHurJjB;;AKjtJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC+tJxC;;AuCluJU;EAQJ,UAAU;EACV,+CpC6BW;AHisJjB;;AsCzrJE;ECjDA,WpCMa;EoCLb,yBpC0Ce;AHosJjB;;AKhuJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC8uJxC;;AuCjvJU;EAQJ,UAAU;EACV,gDpC+BW;AH8sJjB;;AsCxsJE;ECjDA,cpCegB;EoCdhB,yBpCuCe;AHstJjB;;AK/uJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvC6vJxC;;AuChwJU;EAQJ,UAAU;EACV,+CpC4BW;AHguJjB;;AsCvtJE;ECjDA,WpCMa;EoCLb,yBpCqCe;AHuuJjB;;AK9vJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC4wJxC;;AuC/wJU;EAQJ,UAAU;EACV,+CpC0BW;AHivJjB;;AsCtuJE;ECjDA,cpCegB;EoCdhB,yBpCMgB;AHqxJlB;;AK7wJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvC2xJxC;;AuC9xJU;EAQJ,UAAU;EACV,iDpCLY;AH+xJlB;;AsCrvJE;ECjDA,WpCMa;EoCLb,yBpCagB;AH6xJlB;;AK5xJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC0yJxC;;AuC7yJU;EAQJ,UAAU;EACV,8CpCEY;AHuyJlB;;AwCtzJA;EACE,kBAAoD;EACpD,mBrCizBsC;EqC/yBtC,yBrCKgB;EOSd,qBP8N+B;AH6kJnC;;AcjwJI;E0B5DJ;IAQI,kBrC2yBoC;EH+gItC;AACF;;AwCvzJA;EACE,gBAAgB;EAChB,eAAe;E9BIb,gB8BHsB;AxC0zJ1B;;AyCr0JA;EACE,kBAAkB;EAClB,wBtCi9ByC;EsCh9BzC,mBtCi9BsC;EsCh9BtC,6BAA6C;E/BU3C,sBP6NgC;AHkmJpC;;AyCp0JA;EAEE,cAAc;AzCs0JhB;;AyCl0JA;EACE,gBtC4Q+B;AHyjJjC;;AyC7zJA;EACE,mBAAsD;AzCg0JxD;;AyCj0JA;EAKI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,wBtCm7BuC;EsCl7BvC,cAAc;AzCg0JlB;;AyCtzJE;EC9CA,cxBqGgE;EIhG9D,yBJgG8D;EwBnGhE,qBxBmGgE;AlBqwJlE;;A0Ct2JE;EACE,yBAAqC;A1Cy2JzC;;A0Ct2JE;EACE,cAA0B;A1Cy2J9B;;AyCp0JE;EC9CA,cxBqGgE;EIhG9D,yBJgG8D;EwBnGhE,qBxBmGgE;AlBmxJlE;;A0Cp3JE;EACE,yBAAqC;A1Cu3JzC;;A0Cp3JE;EACE,cAA0B;A1Cu3J9B;;AyCl1JE;EC9CA,cxBqGgE;EIhG9D,yBJgG8D;EwBnGhE,qBxBmGgE;AlBiyJlE;;A0Cl4JE;EACE,yBAAqC;A1Cq4JzC;;A0Cl4JE;EACE,cAA0B;A1Cq4J9B;;AyCh2JE;EC9CA,cxBqGgE;EIhG9D,yBJgG8D;EwBnGhE,qBxBmGgE;AlB+yJlE;;A0Ch5JE;EACE,yBAAqC;A1Cm5JzC;;A0Ch5JE;EACE,cAA0B;A1Cm5J9B;;AyC92JE;EC9CA,cxBqGgE;EIhG9D,yBJgG8D;EwBnGhE,qBxBmGgE;AlB6zJlE;;A0C95JE;EACE,yBAAqC;A1Ci6JzC;;A0C95JE;EACE,cAA0B;A1Ci6J9B;;AyC53JE;EC9CA,cxBqGgE;EIhG9D,yBJgG8D;EwBnGhE,qBxBmGgE;AlB20JlE;;A0C56JE;EACE,yBAAqC;A1C+6JzC;;A0C56JE;EACE,cAA0B;A1C+6J9B;;AyC14JE;EC9CA,cxBqGgE;EIhG9D,yBJgG8D;EwBnGhE,qBxBmGgE;AlBy1JlE;;A0C17JE;EACE,yBAAqC;A1C67JzC;;A0C17JE;EACE,cAA0B;A1C67J9B;;AyCx5JE;EC9CA,cxBqGgE;EIhG9D,yBJgG8D;EwBnGhE,qBxBmGgE;AlBu2JlE;;A0Cx8JE;EACE,yBAAqC;A1C28JzC;;A0Cx8JE;EACE,cAA0B;A1C28J9B;;A2Cn9JE;EACE;IAAO,2BAAuC;E3Cu9JhD;E2Ct9JE;IAAK,wBAAwB;E3Cy9J/B;AACF;;A2C59JE;EACE;IAAO,2BAAuC;E3Cu9JhD;E2Ct9JE;IAAK,wBAAwB;E3Cy9J/B;AACF;;A2Ct9JA;EACE,oBAAa;EAAb,aAAa;EACb,YxC09BsC;EwCz9BtC,gBAAgB;EAChB,cAAc;EvCmHV,kBAtCY;EuC3EhB,yBxCLgB;EOSd,sBP6NgC;AHyvJpC;;A2Cr9JA;EACE,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,qBAAuB;EAAvB,uBAAuB;EACvB,gBAAgB;EAChB,WxCjBa;EwCkBb,kBAAkB;EAClB,mBAAmB;EACnB,yBxCQe;EiBnBX,2BjB49B4C;AHwgIlD;;AoBh+JM;EuBDN;IvBEQ,gBAAgB;EpBo+JtB;AACF;;A2C39JA;ErBYE,qMAA6I;EqBV7I,0BxCm8BsC;AH2hIxC;;A2C19JE;EACE,0DxCq8BkD;EwCr8BlD,kDxCq8BkD;AHwhItD;;A2C19JM;EAJJ;IAKM,uBAAe;IAAf,eAAe;E3C89JrB;AACF;;A4CzgKA;EACE,oBAAa;EAAb,aAAa;EACb,qBAAuB;EAAvB,uBAAuB;A5C4gKzB;;A4CzgKA;EACE,WAAO;EAAP,OAAO;A5C4gKT;;A6C9gKA;EACE,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EAGtB,eAAe;EACf,gBAAgB;EnCQd,sBP6NgC;AH2yJpC;;A6CtgKA;EACE,WAAW;EACX,c1CRgB;E0CShB,mBAAmB;A7CygKrB;;AKhhKE;EwCWE,UAAU;EACV,c1Cdc;E0Ced,qBAAqB;EACrB,yB1CtBc;AH+hKlB;;A6CnhKA;EAcI,c1ClBc;E0CmBd,yB1C1Bc;AHmiKlB;;A6ChgKA;EACE,kBAAkB;EAClB,cAAc;EACd,wB1Cy8ByC;E0Ct8BzC,sB1C3Ca;E0C4Cb,sC1ClCa;AHmiKf;;A6CxgKA;EnCjBI,+BmC2BkC;EnC1BlC,gCmC0BkC;A7CmgKtC;;A6C7gKA;EnCHI,mCmCiBqC;EnChBrC,kCmCgBqC;A7CogKzC;;A6ClhKA;EAmBI,c1ClDc;E0CmDd,oBAAoB;EACpB,sB1C1DW;AH6jKf;;A6CxhKA;EA0BI,UAAU;EACV,W1ChEW;E0CiEX,yB1CrCa;E0CsCb,qB1CtCa;AHwiKjB;;A6C/hKA;EAiCI,mBAAmB;A7CkgKvB;;A6CniKA;EAoCM,gB1C4J2B;E0C3J3B,qB1C2J2B;AHw2JjC;;A6Cr/JI;EACE,uBAAmB;EAAnB,mBAAmB;A7Cw/JzB;;A6Cz/JI;EnCtBA,kCPsKgC;EOlLhC,0BmCwCwC;A7Cw/J5C;;A6C9/JI;EnClCA,gCPkLgC;EOtKhC,4BmCiC0C;A7Cw/J9C;;A6CngKI;EAeM,aAAa;A7Cw/JvB;;A6CvgKI;EAmBM,qB1C0HuB;E0CzHvB,oBAAoB;A7Cw/J9B;;A6C5gKI;EAuBQ,iB1CsHqB;E0CrHrB,sB1CqHqB;AHo4JjC;;AcpjKI;E+BmCA;IACE,uBAAmB;IAAnB,mBAAmB;E7CqhKvB;E6CthKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7CohK1C;E6C1hKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7CmhK5C;E6C9hKE;IAeM,aAAa;E7CkhKrB;E6CjiKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7CihK5B;E6CriKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EH45J/B;AACF;;Ac7kKI;E+BmCA;IACE,uBAAmB;IAAnB,mBAAmB;E7C8iKvB;E6C/iKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7C6iK1C;E6CnjKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7C4iK5C;E6CvjKE;IAeM,aAAa;E7C2iKrB;E6C1jKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7C0iK5B;E6C9jKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EHq7J/B;AACF;;ActmKI;E+BmCA;IACE,uBAAmB;IAAnB,mBAAmB;E7CukKvB;E6CxkKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7CskK1C;E6C5kKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7CqkK5C;E6ChlKE;IAeM,aAAa;E7CokKrB;E6CnlKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7CmkK5B;E6CvlKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EH88J/B;AACF;;Ac/nKI;E+BmCA;IACE,uBAAmB;IAAnB,mBAAmB;E7CgmKvB;E6CjmKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7C+lK1C;E6CrmKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7C8lK5C;E6CzmKE;IAeM,aAAa;E7C6lKrB;E6C5mKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7C4lK5B;E6ChnKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EHu+J/B;AACF;;A6C/kKA;EnCnHI,gBmCoHsB;A7CklK1B;;A6CnlKA;EAII,qB1CmG6B;AHg/JjC;;A6CvlKA;EAOM,sBAAsB;A7ColK5B;;A8C7tKE;EACE,c5BkG8D;E4BjG9D,yB5BiG8D;AlB+nKlE;;AKrtKE;EyCPM,c5B6F0D;E4B5F1D,yBAAyC;A9CguKjD;;A8CvuKE;EAWM,W3CPO;E2CQP,yB5BuF0D;E4BtF1D,qB5BsF0D;AlB0oKlE;;A8C7uKE;EACE,c5BkG8D;E4BjG9D,yB5BiG8D;AlB+oKlE;;AKruKE;EyCPM,c5B6F0D;E4B5F1D,yBAAyC;A9CgvKjD;;A8CvvKE;EAWM,W3CPO;E2CQP,yB5BuF0D;E4BtF1D,qB5BsF0D;AlB0pKlE;;A8C7vKE;EACE,c5BkG8D;E4BjG9D,yB5BiG8D;AlB+pKlE;;AKrvKE;EyCPM,c5B6F0D;E4B5F1D,yBAAyC;A9CgwKjD;;A8CvwKE;EAWM,W3CPO;E2CQP,yB5BuF0D;E4BtF1D,qB5BsF0D;AlB0qKlE;;A8C7wKE;EACE,c5BkG8D;E4BjG9D,yB5BiG8D;AlB+qKlE;;AKrwKE;EyCPM,c5B6F0D;E4B5F1D,yBAAyC;A9CgxKjD;;A8CvxKE;EAWM,W3CPO;E2CQP,yB5BuF0D;E4BtF1D,qB5BsF0D;AlB0rKlE;;A8C7xKE;EACE,c5BkG8D;E4BjG9D,yB5BiG8D;AlB+rKlE;;AKrxKE;EyCPM,c5B6F0D;E4B5F1D,yBAAyC;A9CgyKjD;;A8CvyKE;EAWM,W3CPO;E2CQP,yB5BuF0D;E4BtF1D,qB5BsF0D;AlB0sKlE;;A8C7yKE;EACE,c5BkG8D;E4BjG9D,yB5BiG8D;AlB+sKlE;;AKryKE;EyCPM,c5B6F0D;E4B5F1D,yBAAyC;A9CgzKjD;;A8CvzKE;EAWM,W3CPO;E2CQP,yB5BuF0D;E4BtF1D,qB5BsF0D;AlB0tKlE;;A8C7zKE;EACE,c5BkG8D;E4BjG9D,yB5BiG8D;AlB+tKlE;;AKrzKE;EyCPM,c5B6F0D;E4B5F1D,yBAAyC;A9Cg0KjD;;A8Cv0KE;EAWM,W3CPO;E2CQP,yB5BuF0D;E4BtF1D,qB5BsF0D;AlB0uKlE;;A8C70KE;EACE,c5BkG8D;E4BjG9D,yB5BiG8D;AlB+uKlE;;AKr0KE;EyCPM,c5B6F0D;E4B5F1D,yBAAyC;A9Cg1KjD;;A8Cv1KE;EAWM,W3CPO;E2CQP,yB5BuF0D;E4BtF1D,qB5BsF0D;AlB0vKlE;;A+Ch2KA;EACE,YAAY;E3C8HR,iBAtCY;E2CtFhB,gB5C6R+B;E4C5R/B,cAAc;EACd,W5CYa;E4CXb,yB5CCa;E4CAb,WAAW;A/Cm2Kb;;AK91KE;E0CDE,W5CMW;E4CLX,qBAAqB;A/Cm2KzB;;AK/1KE;E0CCI,YAAY;A/Ck2KlB;;A+Cv1KA;EACE,UAAU;EACV,6BAA6B;EAC7B,SAAS;A/C01KX;;A+Cp1KA;EACE,oBAAoB;A/Cu1KtB;;AgD73KA;EAGE,8B7Cm4BuC;E6Cn4BvC,iB7Cm4BuC;E6Cl4BvC,gB7Ck4BuC;ECvwBnC,mBAtCY;E4ClFhB,2C7CAa;E6CCb,4BAA4B;EAC5B,oC7Co4BmD;E6Cn4BnD,gD7COa;E6CNb,UAAU;EtCOR,sBP43BsC;AH2/I1C;;AgDz4KA;EAeI,sB7Cw3BsC;AHsgJ1C;;AgD74KA;EAmBI,UAAU;AhD83Kd;;AgDj5KA;EAuBI,cAAc;EACd,UAAU;AhD83Kd;;AgDt5KA;EA4BI,aAAa;AhD83KjB;;AgD13KA;EACE,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,wB7Co2BwC;E6Cn2BxC,c7CvBgB;E6CwBhB,2C7C9Ba;E6C+Bb,4BAA4B;EAC5B,4C7C42BoD;EOx3BlD,2CQgH4D;ER/G5D,4CQ+G4D;AlB2xKhE;;AgD33KA;EACE,gB7C21BwC;AHmiJ1C;;AiDp6KA;EAEE,gBAAgB;AjDs6KlB;;AiDx6KA;EAKI,kBAAkB;EAClB,gBAAgB;AjDu6KpB;;AiDl6KA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,a9C0pBsC;E8CzpBtC,aAAa;EACb,WAAW;EACX,YAAY;EACZ,gBAAgB;EAGhB,UAAU;AjDm6KZ;;AiD55KA;EACE,kBAAkB;EAClB,WAAW;EACX,c9Cy4BuC;E8Cv4BvC,oBAAoB;AjD85KtB;;AiD35KE;E7B3BI,2CjB87BoD;EiB97BpD,mCjB87BoD;EiB97BpD,oEjB87BoD;E8Cj6BtD,sC9C+5BmD;E8C/5BnD,8B9C+5BmD;AH+/IvD;;AoBv7KM;E6BuBJ;I7BtBM,gBAAgB;EpB27KtB;AACF;;AiDl6KE;EACE,uB9C65BoC;E8C75BpC,e9C65BoC;AHwgJxC;;AiDj6KE;EACE,8B9C05B2C;E8C15B3C,sB9C05B2C;AH0gJ/C;;AiDh6KA;EACE,oBAAa;EAAb,aAAa;EACb,6B/BgF8D;AlBm1KhE;;AiDr6KA;EAKI,8B/B6E4D;E+B5E5D,gBAAgB;AjDo6KpB;;AiD16KA;;EAWI,oBAAc;EAAd,cAAc;AjDo6KlB;;AiD/6KA;EAeI,gBAAgB;AjDo6KpB;;AiDh6KA;EACE,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,6B/B4D8D;AlBu2KhE;;AiDt6KA;EAOI,cAAc;EACd,0B/BuD4D;E+BtD5D,2BAAmB;EAAnB,wBAAmB;EAAnB,mBAAmB;EACnB,WAAW;AjDm6Kf;;AiD76KA;EAeI,0BAAsB;EAAtB,sBAAsB;EACtB,qBAAuB;EAAvB,uBAAuB;EACvB,YAAY;AjDk6KhB;;AiDn7KA;EAoBM,gBAAgB;AjDm6KtB;;AiDv7KA;EAwBM,aAAa;AjDm6KnB;;AiD75KA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,WAAW;EAGX,oBAAoB;EACpB,sB9C3Ga;E8C4Gb,4BAA4B;EAC5B,oC9CnGa;EOCX,qBP8N+B;E8CxHjC,UAAU;AjD45KZ;;AiDx5KA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,a9C8iBsC;E8C7iBtC,YAAY;EACZ,aAAa;EACb,sB9ClHa;AH6gLf;;AiDl6KA;EAUW,UAAU;AjD45KrB;;AiDt6KA;EAWW,Y9CuzB2B;AHwmJtC;;AiD15KA;EACE,oBAAa;EAAb,aAAa;EACb,qBAAuB;EAAvB,uBAAuB;EACvB,sBAA8B;EAA9B,8BAA8B;EAC9B,kB9CozBsC;E8CnzBtC,gC9CvIgB;EOiBd,0CQgH4D;ER/G5D,2CQ+G4D;AlBq6KhE;;AiDp6KA;EASI,kB9C+yBoC;E8C7yBpC,8BAA6F;AjD85KjG;;AiDz5KA;EACE,gBAAgB;EAChB,gB9CsI+B;AHsxKjC;;AiDv5KA;EACE,kBAAkB;EAGlB,kBAAc;EAAd,cAAc;EACd,a9CkwBsC;AHspJxC;;AiDp5KA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,sBAAmB;EAAnB,mBAAmB;EACnB,kBAAyB;EAAzB,yBAAyB;EACzB,gBAAgE;EAChE,6B9CxKgB;EO+Bd,8CQkG4D;ERjG5D,6CQiG4D;AlBg8KhE;;AiD/5KA;EAaI,eAAwC;AjDs5K5C;;AiDj5KA;EACE,kBAAkB;EAClB,YAAY;EACZ,WAAW;EACX,YAAY;EACZ,gBAAgB;AjDo5KlB;;Ac3hLI;EmCzBJ;IAuKI,gB9C+vBqC;I8C9vBrC,oBAAyC;EjDk5K3C;EiDpiLF;IAsJI,+B/BpE4D;ElBq9K9D;EiDviLF;IAyJM,gC/BvE0D;ElBw9K9D;EiDvhLF;IA2II,+B/B5E4D;ElB29K9D;EiD1hLF;IA8IM,4B/B/E0D;I+BgF1D,2BAAmB;IAAnB,wBAAmB;IAAnB,mBAAmB;EjD+4KvB;EiDv4KA;IAAY,gB9CuuB2B;EHmqJvC;AACF;;AcljLI;EmC2KF;;IAEE,gB9C+tBqC;EH4qJvC;AACF;;AczjLI;EmCkLF;IAAY,iB9CytB4B;EHmrJxC;AACF;;AkD1nLA;EACE,kBAAkB;EAClB,a/C8qBsC;E+C7qBtC,cAAc;EACd,S/Cq1BmC;EgDz1BnC,kMhDmRiN;EgDjRjN,kBAAkB;EAClB,gBhD2R+B;EgD1R/B,gBhD+R+B;EgD9R/B,gBAAgB;EAChB,iBAAiB;EACjB,qBAAqB;EACrB,iBAAiB;EACjB,oBAAoB;EACpB,sBAAsB;EACtB,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,gBAAgB;E/CgHZ,mBAtCY;E8C9EhB,qBAAqB;EACrB,UAAU;AlDuoLZ;;AkDlpLA;EAaW,Y/Cy0B2B;AHg0JtC;;AkDtpLA;EAgBI,kBAAkB;EAClB,cAAc;EACd,a/Cy0BqC;E+Cx0BrC,c/Cy0BqC;AHi0JzC;;AkD7pLA;EAsBM,kBAAkB;EAClB,WAAW;EACX,yBAAyB;EACzB,mBAAmB;AlD2oLzB;;AkDtoLA;EACE,iBAAgC;AlDyoLlC;;AkD1oLA;EAII,SAAS;AlD0oLb;;AkD9oLA;EAOM,MAAM;EACN,6BAAgE;EAChE,sB/CvBS;AHkqLf;;AkDtoLA;EACE,iB/C+yBuC;AH01JzC;;AkD1oLA;EAII,OAAO;EACP,a/C2yBqC;E+C1yBrC,c/CyyBqC;AHi2JzC;;AkDhpLA;EASM,QAAQ;EACR,oCAA2F;EAC3F,wB/CvCS;AHkrLf;;AkDtoLA;EACE,iBAAgC;AlDyoLlC;;AkD1oLA;EAII,MAAM;AlD0oLV;;AkD9oLA;EAOM,SAAS;EACT,6B/CwxBmC;E+CvxBnC,yB/CrDS;AHgsLf;;AkDtoLA;EACE,iB/CixBuC;AHw3JzC;;AkD1oLA;EAII,QAAQ;EACR,a/C6wBqC;E+C5wBrC,c/C2wBqC;AH+3JzC;;AkDhpLA;EASM,OAAO;EACP,oC/CwwBmC;E+CvwBnC,uB/CrES;AHgtLf;;AkDtnLA;EACE,gB/CuuBuC;E+CtuBvC,uB/C4uBuC;E+C3uBvC,W/CvGa;E+CwGb,kBAAkB;EAClB,sB/C/Fa;EOCX,sBP6NgC;AH2/KpC;;AoD1uLA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,ajD4qBsC;EiD3qBtC,cAAc;EACd,gBjDu2BuC;EgD52BvC,kMhDmRiN;EgDjRjN,kBAAkB;EAClB,gBhD2R+B;EgD1R/B,gBhD+R+B;EgD9R/B,gBAAgB;EAChB,iBAAiB;EACjB,qBAAqB;EACrB,iBAAiB;EACjB,oBAAoB;EACpB,sBAAsB;EACtB,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,gBAAgB;E/CgHZ,mBAtCY;EgD7EhB,qBAAqB;EACrB,sBjDNa;EiDOb,4BAA4B;EAC5B,oCjDEa;EOCX,qBP8N+B;AHuhLnC;;AoDvwLA;EAoBI,kBAAkB;EAClB,cAAc;EACd,WjDu2BoC;EiDt2BpC,cjDu2BqC;EiDt2BrC,gBjDwN+B;AH+hLnC;;AoD/wLA;EA4BM,kBAAkB;EAClB,cAAc;EACd,WAAW;EACX,yBAAyB;EACzB,mBAAmB;ApDuvLzB;;AoDlvLA;EACE,qBjDw1BuC;AH65JzC;;AoDtvLA;EAII,2BlCkG4D;AlBopLhE;;AoD1vLA;EAOM,SAAS;EACT,6BAAgE;EAChE,qCjDm1BiE;AHo6JvE;;AoDhwLA;EAaM,WjD0L2B;EiDzL3B,6BAAgE;EAChE,sBjD7CS;AHoyLf;;AoDlvLA;EACE,mBjDo0BuC;AHi7JzC;;AoDtvLA;EAII,yBlC8E4D;EkC7E5D,ajDg0BqC;EiD/zBrC,YjD8zBoC;EiD7zBpC,gBAAgC;ApDsvLpC;;AoD7vLA;EAUM,OAAO;EACP,oCAA2F;EAC3F,uCjD4zBiE;AH27JvE;;AoDnwLA;EAgBM,SjDmK2B;EiDlK3B,oCAA2F;EAC3F,wBjDpES;AH2zLf;;AoDlvLA;EACE,kBjD6yBuC;AHw8JzC;;AoDtvLA;EAII,wBlCuD4D;AlB+rLhE;;AoD1vLA;EAOM,MAAM;EACN,oCAA2F;EAC3F,wCjDwyBiE;AH+8JvE;;AoDhwLA;EAaM,QjD+I2B;EiD9I3B,oCAA2F;EAC3F,yBjDxFS;AH+0Lf;;AoDtwLA;EAqBI,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,cAAc;EACd,WjDoxBoC;EiDnxBpC,oBAAsC;EACtC,WAAW;EACX,gCjDwwBuD;AH6+J3D;;AoDjvLA;EACE,oBjD6wBuC;AHu+JzC;;AoDrvLA;EAII,0BlCuB4D;EkCtB5D,ajDywBqC;EiDxwBrC,YjDuwBoC;EiDtwBpC,gBAAgC;ApDqvLpC;;AoD5vLA;EAUM,QAAQ;EACR,oCjDmwBmC;EiDlwBnC,sCjDqwBiE;AHi/JvE;;AoDlwLA;EAgBM,UjD4G2B;EiD3G3B,oCjD6vBmC;EiD5vBnC,uBjD3HS;AHi3Lf;;AoDhuLA;EACE,uBjD8tBwC;EiD7tBxC,gBAAgB;EhD3BZ,eAtCY;EgDoEhB,yBjDutByD;EiDttBzD,gCAAyE;E1CnIvE,0CQgH4D;ER/G5D,2CQ+G4D;AlBuvLhE;;AoD1uLA;EAUI,aAAa;ApDouLjB;;AoDhuLA;EACE,uBjDgtBwC;EiD/sBxC,cjDxJgB;AH23LlB;;AqD93LA;EACE,kBAAkB;ArDi4LpB;;AqD93LA;EACE,uBAAmB;EAAnB,mBAAmB;ArDi4LrB;;AqD93LA;EACE,kBAAkB;EAClB,WAAW;EACX,gBAAgB;ArDi4LlB;;AsDx5LE;EACE,cAAc;EACd,WAAW;EACX,WAAW;AtD25Lf;;AqDn4LA;EACE,kBAAkB;EAClB,aAAa;EACb,WAAW;EACX,WAAW;EACX,mBAAmB;EACnB,mCAA2B;EAA3B,2BAA2B;EjClBvB,8CjBmjCkF;EiBnjClF,sCjBmjCkF;EiBnjClF,0EjBmjCkF;AHs2JxF;;AoBr5LM;EiCQN;IjCPQ,gBAAgB;EpBy5LtB;AACF;;AqDz4LA;;;EAGE,cAAc;ArD44LhB;;AqDz4LA;;EAEE,mCAA2B;EAA3B,2BAA2B;ArD44L7B;;AqDz4LA;;EAEE,oCAA4B;EAA5B,4BAA4B;ArD44L9B;;AqDp4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;AzDmqMtD;;AyDzqME;EACE,oCAAmC;AzD4qMvC;;AKlqME;;;EoDLI,oCAAgD;AzD6qMtD;;AyDnrME;EACE,oCAAmC;AzDsrMvC;;AK5qME;;;EoDLI,oCAAgD;AzDurMtD;;AyD7rME;EACE,oCAAmC;AzDgsMvC;;AKtrME;;;EoDLI,oCAAgD;AzDisMtD;;AyDvsME;EACE,oCAAmC;AzD0sMvC;;AKhsME;;;EoDLI,oCAAgD;AzD2sMtD;;AyDjtME;EACE,oCAAmC;AzDotMvC;;AK1sME;;;EoDLI,oCAAgD;AzDqtMtD;;A0DptMA;EACE,iCAAmC;A1DutMrC;;A0DptMA;EACE,wCAAwC;A1DutM1C;;A2DluMA;EAAkB,oCAAoD;A3DsuMtE;;A2DruMA;EAAkB,wCAAwD;A3DyuM1E;;A2DxuMA;EAAkB,0CAA0D;A3D4uM5E;;A2D3uMA;EAAkB,2CAA2D;A3D+uM7E;;A2D9uMA;EAAkB,yCAAyD;A3DkvM3E;;A2DhvMA;EAAmB,oBAAoB;A3DovMvC;;A2DnvMA;EAAmB,wBAAwB;A3DuvM3C;;A2DtvMA;EAAmB,0BAA0B;A3D0vM7C;;A2DzvMA;EAAmB,2BAA2B;A3D6vM9C;;A2D5vMA;EAAmB,yBAAyB;A3DgwM5C;;A2D7vME;EACE,gCAA+B;A3DgwMnC;;A2DjwME;EACE,gCAA+B;A3DowMnC;;A2DrwME;EACE,gCAA+B;A3DwwMnC;;A2DzwME;EACE,gCAA+B;A3D4wMnC;;A2D7wME;EACE,gCAA+B;A3DgxMnC;;A2DjxME;EACE,gCAA+B;A3DoxMnC;;A2DrxME;EACE,gCAA+B;A3DwxMnC;;A2DzxME;EACE,gCAA+B;A3D4xMnC;;A2DxxMA;EACE,6BAA+B;A3D2xMjC;;A2DpxMA;EACE,gCAA2C;A3DuxM7C;;A2DpxMA;EACE,iCAAwC;A3DuxM1C;;A2DpxMA;EACE,0CAAiD;EACjD,2CAAkD;A3DuxMpD;;A2DpxMA;EACE,2CAAkD;EAClD,8CAAqD;A3DuxMvD;;A2DpxMA;EACE,8CAAqD;EACrD,6CAAoD;A3DuxMtD;;A2DpxMA;EACE,0CAAiD;EACjD,6CAAoD;A3DuxMtD;;A2DpxMA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E+2OhD;;AuE93OQ;EAAgC,yBAA4B;AvEk4OpE;;AuEj4OQ;;EAEE,6BAAoC;AvEo4O9C;;AuEl4OQ;;EAEE,+BAAwC;AvEq4OlD;;AuEn4OQ;;EAEE,gCAA0C;AvEs4OpD;;AuEp4OQ;;EAEE,8BAAsC;AvEu4OhD;;AuEt5OQ;EAAgC,uBAA4B;AvE05OpE;;AuEz5OQ;;EAEE,2BAAoC;AvE45O9C;;AuE15OQ;;EAEE,6BAAwC;AvE65OlD;;AuE35OQ;;EAEE,8BAA0C;AvE85OpD;;AuE55OQ;;EAEE,4BAAsC;AvE+5OhD;;AuE96OQ;EAAgC,yBAA4B;AvEk7OpE;;AuEj7OQ;;EAEE,6BAAoC;AvEo7O9C;;AuEl7OQ;;EAEE,+BAAwC;AvEq7OlD;;AuEn7OQ;;EAEE,gCAA0C;AvEs7OpD;;AuEp7OQ;;EAEE,8BAAsC;AvEu7OhD;;AuEt8OQ;EAAgC,uBAA4B;AvE08OpE;;AuEz8OQ;;EAEE,2BAAoC;AvE48O9C;;AuE18OQ;;EAEE,6BAAwC;AvE68OlD;;AuE38OQ;;EAEE,8BAA0C;AvE88OpD;;AuE58OQ;;EAEE,4BAAsC;AvE+8OhD;;AuE99OQ;EAAgC,qBAA4B;AvEk+OpE;;AuEj+OQ;;EAEE,yBAAoC;AvEo+O9C;;AuEl+OQ;;EAEE,2BAAwC;AvEq+OlD;;AuEn+OQ;;EAEE,4BAA0C;AvEs+OpD;;AuEp+OQ;;EAEE,0BAAsC;AvEu+OhD;;AuEt/OQ;EAAgC,2BAA4B;AvE0/OpE;;AuEz/OQ;;EAEE,+BAAoC;AvE4/O9C;;AuE1/OQ;;EAEE,iCAAwC;AvE6/OlD;;AuE3/OQ;;EAEE,kCAA0C;AvE8/OpD;;AuE5/OQ;;EAEE,gCAAsC;AvE+/OhD;;AuE9gPQ;EAAgC,0BAA4B;AvEkhPpE;;AuEjhPQ;;EAEE,8BAAoC;AvEohP9C;;AuElhPQ;;EAEE,gCAAwC;AvEqhPlD;;AuEnhPQ;;EAEE,iCAA0C;AvEshPpD;;AuEphPQ;;EAEE,+BAAsC;AvEuhPhD;;AuEtiPQ;EAAgC,wBAA4B;AvE0iPpE;;AuEziPQ;;EAEE,4BAAoC;AvE4iP9C;;AuE1iPQ;;EAEE,8BAAwC;AvE6iPlD;;AuE3iPQ;;EAEE,+BAA0C;AvE8iPpD;;AuE5iPQ;;EAEE,6BAAsC;AvE+iPhD;;AuE9jPQ;EAAgC,0BAA4B;AvEkkPpE;;AuEjkPQ;;EAEE,8BAAoC;AvEokP9C;;AuElkPQ;;EAEE,gCAAwC;AvEqkPlD;;AuEnkPQ;;EAEE,iCAA0C;AvEskPpD;;AuEpkPQ;;EAEE,+BAAsC;AvEukPhD;;AuEtlPQ;EAAgC,wBAA4B;AvE0lPpE;;AuEzlPQ;;EAEE,4BAAoC;AvE4lP9C;;AuE1lPQ;;EAEE,8BAAwC;AvE6lPlD;;AuE3lPQ;;EAEE,+BAA0C;AvE8lPpD;;AuE5lPQ;;EAEE,6BAAsC;AvE+lPhD;;AuEvlPQ;EAAwB,2BAA2B;AvE2lP3D;;AuE1lPQ;;EAEE,+BAA+B;AvE6lPzC;;AuE3lPQ;;EAEE,iCAAiC;AvE8lP3C;;AuE5lPQ;;EAEE,kCAAkC;AvE+lP5C;;AuE7lPQ;;EAEE,gCAAgC;AvEgmP1C;;AuE/mPQ;EAAwB,0BAA2B;AvEmnP3D;;AuElnPQ;;EAEE,8BAA+B;AvEqnPzC;;AuEnnPQ;;EAEE,gCAAiC;AvEsnP3C;;AuEpnPQ;;EAEE,iCAAkC;AvEunP5C;;AuErnPQ;;EAEE,+BAAgC;AvEwnP1C;;AuEvoPQ;EAAwB,wBAA2B;AvE2oP3D;;AuE1oPQ;;EAEE,4BAA+B;AvE6oPzC;;AuE3oPQ;;EAEE,8BAAiC;AvE8oP3C;;AuE5oPQ;;EAEE,+BAAkC;AvE+oP5C;;AuE7oPQ;;EAEE,6BAAgC;AvEgpP1C;;AuE/pPQ;EAAwB,0BAA2B;AvEmqP3D;;AuElqPQ;;EAEE,8BAA+B;AvEqqPzC;;AuEnqPQ;;EAEE,gCAAiC;AvEsqP3C;;AuEpqPQ;;EAEE,iCAAkC;AvEuqP5C;;AuErqPQ;;EAEE,+BAAgC;AvEwqP1C;;AuEvrPQ;EAAwB,wBAA2B;AvE2rP3D;;AuE1rPQ;;EAEE,4BAA+B;AvE6rPzC;;AuE3rPQ;;EAEE,8BAAiC;AvE8rP3C;;AuE5rPQ;;EAEE,+BAAkC;AvE+rP5C;;AuE7rPQ;;EAEE,6BAAgC;AvEgsP1C;;AuE1rPI;EAAmB,uBAAuB;AvE8rP9C;;AuE7rPI;;EAEE,2BAA2B;AvEgsPjC;;AuE9rPI;;EAEE,6BAA6B;AvEisPnC;;AuE/rPI;;EAEE,8BAA8B;AvEksPpC;;AuEhsPI;;EAEE,4BAA4B;AvEmsPlC;;Ac5sPI;EyDlDI;IAAgC,oBAA4B;EvEmwPlE;EuElwPM;;IAEE,wBAAoC;EvEowP5C;EuElwPM;;IAEE,0BAAwC;EvEowPhD;EuElwPM;;IAEE,2BAA0C;EvEowPlD;EuElwPM;;IAEE,yBAAsC;EvEowP9C;EuEnxPM;IAAgC,0BAA4B;EvEsxPlE;EuErxPM;;IAEE,8BAAoC;EvEuxP5C;EuErxPM;;IAEE,gCAAwC;EvEuxPhD;EuErxPM;;IAEE,iCAA0C;EvEuxPlD;EuErxPM;;IAEE,+BAAsC;EvEuxP9C;EuEtyPM;IAAgC,yBAA4B;EvEyyPlE;EuExyPM;;IAEE,6BAAoC;EvE0yP5C;EuExyPM;;IAEE,+BAAwC;EvE0yPhD;EuExyPM;;IAEE,gCAA0C;EvE0yPlD;EuExyPM;;IAEE,8BAAsC;EvE0yP9C;EuEzzPM;IAAgC,uBAA4B;EvE4zPlE;EuE3zPM;;IAEE,2BAAoC;EvE6zP5C;EuE3zPM;;IAEE,6BAAwC;EvE6zPhD;EuE3zPM;;IAEE,8BAA0C;EvE6zPlD;EuE3zPM;;IAEE,4BAAsC;EvE6zP9C;EuE50PM;IAAgC,yBAA4B;EvE+0PlE;EuE90PM;;IAEE,6BAAoC;EvEg1P5C;EuE90PM;;IAEE,+BAAwC;EvEg1PhD;EuE90PM;;IAEE,gCAA0C;EvEg1PlD;EuE90PM;;IAEE,8BAAsC;EvEg1P9C;EuE/1PM;IAAgC,uBAA4B;EvEk2PlE;EuEj2PM;;IAEE,2BAAoC;EvEm2P5C;EuEj2PM;;IAEE,6BAAwC;EvEm2PhD;EuEj2PM;;IAEE,8BAA0C;EvEm2PlD;EuEj2PM;;IAEE,4BAAsC;EvEm2P9C;EuEl3PM;IAAgC,qBAA4B;EvEq3PlE;EuEp3PM;;IAEE,yBAAoC;EvEs3P5C;EuEp3PM;;IAEE,2BAAwC;EvEs3PhD;EuEp3PM;;IAEE,4BAA0C;EvEs3PlD;EuEp3PM;;IAEE,0BAAsC;EvEs3P9C;EuEr4PM;IAAgC,2BAA4B;EvEw4PlE;EuEv4PM;;IAEE,+BAAoC;EvEy4P5C;EuEv4PM;;IAEE,iCAAwC;EvEy4PhD;EuEv4PM;;IAEE,kCAA0C;EvEy4PlD;EuEv4PM;;IAEE,gCAAsC;EvEy4P9C;EuEx5PM;IAAgC,0BAA4B;EvE25PlE;EuE15PM;;IAEE,8BAAoC;EvE45P5C;EuE15PM;;IAEE,gCAAwC;EvE45PhD;EuE15PM;;IAEE,iCAA0C;EvE45PlD;EuE15PM;;IAEE,+BAAsC;EvE45P9C;EuE36PM;IAAgC,wBAA4B;EvE86PlE;EuE76PM;;IAEE,4BAAoC;EvE+6P5C;EuE76PM;;IAEE,8BAAwC;EvE+6PhD;EuE76PM;;IAEE,+BAA0C;EvE+6PlD;EuE76PM;;IAEE,6BAAsC;EvE+6P9C;EuE97PM;IAAgC,0BAA4B;EvEi8PlE;EuEh8PM;;IAEE,8BAAoC;EvEk8P5C;EuEh8PM;;IAEE,gCAAwC;EvEk8PhD;EuEh8PM;;IAEE,iCAA0C;EvEk8PlD;EuEh8PM;;IAEE,+BAAsC;EvEk8P9C;EuEj9PM;IAAgC,wBAA4B;EvEo9PlE;EuEn9PM;;IAEE,4BAAoC;EvEq9P5C;EuEn9PM;;IAEE,8BAAwC;EvEq9PhD;EuEn9PM;;IAEE,+BAA0C;EvEq9PlD;EuEn9PM;;IAEE,6BAAsC;EvEq9P9C;EuE78PM;IAAwB,2BAA2B;EvEg9PzD;EuE/8PM;;IAEE,+BAA+B;EvEi9PvC;EuE/8PM;;IAEE,iCAAiC;EvEi9PzC;EuE/8PM;;IAEE,kCAAkC;EvEi9P1C;EuE/8PM;;IAEE,gCAAgC;EvEi9PxC;EuEh+PM;IAAwB,0BAA2B;EvEm+PzD;EuEl+PM;;IAEE,8BAA+B;EvEo+PvC;EuEl+PM;;IAEE,gCAAiC;EvEo+PzC;EuEl+PM;;IAEE,iCAAkC;EvEo+P1C;EuEl+PM;;IAEE,+BAAgC;EvEo+PxC;EuEn/PM;IAAwB,wBAA2B;EvEs/PzD;EuEr/PM;;IAEE,4BAA+B;EvEu/PvC;EuEr/PM;;IAEE,8BAAiC;EvEu/PzC;EuEr/PM;;IAEE,+BAAkC;EvEu/P1C;EuEr/PM;;IAEE,6BAAgC;EvEu/PxC;EuEtgQM;IAAwB,0BAA2B;EvEygQzD;EuExgQM;;IAEE,8BAA+B;EvE0gQvC;EuExgQM;;IAEE,gCAAiC;EvE0gQzC;EuExgQM;;IAEE,iCAAkC;EvE0gQ1C;EuExgQM;;IAEE,+BAAgC;EvE0gQxC;EuEzhQM;IAAwB,wBAA2B;EvE4hQzD;EuE3hQM;;IAEE,4BAA+B;EvE6hQvC;EuE3hQM;;IAEE,8BAAiC;EvE6hQzC;EuE3hQM;;IAEE,+BAAkC;EvE6hQ1C;EuE3hQM;;IAEE,6BAAgC;EvE6hQxC;EuEvhQE;IAAmB,uBAAuB;EvE0hQ5C;EuEzhQE;;IAEE,2BAA2B;EvE2hQ/B;EuEzhQE;;IAEE,6BAA6B;EvE2hQjC;EuEzhQE;;IAEE,8BAA8B;EvE2hQlC;EuEzhQE;;IAEE,4BAA4B;EvE2hQhC;AACF;;AcriQI;EyDlDI;IAAgC,oBAA4B;EvE4lQlE;EuE3lQM;;IAEE,wBAAoC;EvE6lQ5C;EuE3lQM;;IAEE,0BAAwC;EvE6lQhD;EuE3lQM;;IAEE,2BAA0C;EvE6lQlD;EuE3lQM;;IAEE,yBAAsC;EvE6lQ9C;EuE5mQM;IAAgC,0BAA4B;EvE+mQlE;EuE9mQM;;IAEE,8BAAoC;EvEgnQ5C;EuE9mQM;;IAEE,gCAAwC;EvEgnQhD;EuE9mQM;;IAEE,iCAA0C;EvEgnQlD;EuE9mQM;;IAEE,+BAAsC;EvEgnQ9C;EuE/nQM;IAAgC,yBAA4B;EvEkoQlE;EuEjoQM;;IAEE,6BAAoC;EvEmoQ5C;EuEjoQM;;IAEE,+BAAwC;EvEmoQhD;EuEjoQM;;IAEE,gCAA0C;EvEmoQlD;EuEjoQM;;IAEE,8BAAsC;EvEmoQ9C;EuElpQM;IAAgC,uBAA4B;EvEqpQlE;EuEppQM;;IAEE,2BAAoC;EvEspQ5C;EuEppQM;;IAEE,6BAAwC;EvEspQhD;EuEppQM;;IAEE,8BAA0C;EvEspQlD;EuEppQM;;IAEE,4BAAsC;EvEspQ9C;EuErqQM;IAAgC,yBAA4B;EvEwqQlE;EuEvqQM;;IAEE,6BAAoC;EvEyqQ5C;EuEvqQM;;IAEE,+BAAwC;EvEyqQhD;EuEvqQM;;IAEE,gCAA0C;EvEyqQlD;EuEvqQM;;IAEE,8BAAsC;EvEyqQ9C;EuExrQM;IAAgC,uBAA4B;EvE2rQlE;EuE1rQM;;IAEE,2BAAoC;EvE4rQ5C;EuE1rQM;;IAEE,6BAAwC;EvE4rQhD;EuE1rQM;;IAEE,8BAA0C;EvE4rQlD;EuE1rQM;;IAEE,4BAAsC;EvE4rQ9C;EuE3sQM;IAAgC,qBAA4B;EvE8sQlE;EuE7sQM;;IAEE,yBAAoC;EvE+sQ5C;EuE7sQM;;IAEE,2BAAwC;EvE+sQhD;EuE7sQM;;IAEE,4BAA0C;EvE+sQlD;EuE7sQM;;IAEE,0BAAsC;EvE+sQ9C;EuE9tQM;IAAgC,2BAA4B;EvEiuQlE;EuEhuQM;;IAEE,+BAAoC;EvEkuQ5C;EuEhuQM;;IAEE,iCAAwC;EvEkuQhD;EuEhuQM;;IAEE,kCAA0C;EvEkuQlD;EuEhuQM;;IAEE,gCAAsC;EvEkuQ9C;EuEjvQM;IAAgC,0BAA4B;EvEovQlE;EuEnvQM;;IAEE,8BAAoC;EvEqvQ5C;EuEnvQM;;IAEE,gCAAwC;EvEqvQhD;EuEnvQM;;IAEE,iCAA0C;EvEqvQlD;EuEnvQM;;IAEE,+BAAsC;EvEqvQ9C;EuEpwQM;IAAgC,wBAA4B;EvEuwQlE;EuEtwQM;;IAEE,4BAAoC;EvEwwQ5C;EuEtwQM;;IAEE,8BAAwC;EvEwwQhD;EuEtwQM;;IAEE,+BAA0C;EvEwwQlD;EuEtwQM;;IAEE,6BAAsC;EvEwwQ9C;EuEvxQM;IAAgC,0BAA4B;EvE0xQlE;EuEzxQM;;IAEE,8BAAoC;EvE2xQ5C;EuEzxQM;;IAEE,gCAAwC;EvE2xQhD;EuEzxQM;;IAEE,iCAA0C;EvE2xQlD;EuEzxQM;;IAEE,+BAAsC;EvE2xQ9C;EuE1yQM;IAAgC,wBAA4B;EvE6yQlE;EuE5yQM;;IAEE,4BAAoC;EvE8yQ5C;EuE5yQM;;IAEE,8BAAwC;EvE8yQhD;EuE5yQM;;IAEE,+BAA0C;EvE8yQlD;EuE5yQM;;IAEE,6BAAsC;EvE8yQ9C;EuEtyQM;IAAwB,2BAA2B;EvEyyQzD;EuExyQM;;IAEE,+BAA+B;EvE0yQvC;EuExyQM;;IAEE,iCAAiC;EvE0yQzC;EuExyQM;;IAEE,kCAAkC;EvE0yQ1C;EuExyQM;;IAEE,gCAAgC;EvE0yQxC;EuEzzQM;IAAwB,0BAA2B;EvE4zQzD;EuE3zQM;;IAEE,8BAA+B;EvE6zQvC;EuE3zQM;;IAEE,gCAAiC;EvE6zQzC;EuE3zQM;;IAEE,iCAAkC;EvE6zQ1C;EuE3zQM;;IAEE,+BAAgC;EvE6zQxC;EuE50QM;IAAwB,wBAA2B;EvE+0QzD;EuE90QM;;IAEE,4BAA+B;EvEg1QvC;EuE90QM;;IAEE,8BAAiC;EvEg1QzC;EuE90QM;;IAEE,+BAAkC;EvEg1Q1C;EuE90QM;;IAEE,6BAAgC;EvEg1QxC;EuE/1QM;IAAwB,0BAA2B;EvEk2QzD;EuEj2QM;;IAEE,8BAA+B;EvEm2QvC;EuEj2QM;;IAEE,gCAAiC;EvEm2QzC;EuEj2QM;;IAEE,iCAAkC;EvEm2Q1C;EuEj2QM;;IAEE,+BAAgC;EvEm2QxC;EuEl3QM;IAAwB,wBAA2B;EvEq3QzD;EuEp3QM;;IAEE,4BAA+B;EvEs3QvC;EuEp3QM;;IAEE,8BAAiC;EvEs3QzC;EuEp3QM;;IAEE,+BAAkC;EvEs3Q1C;EuEp3QM;;IAEE,6BAAgC;EvEs3QxC;EuEh3QE;IAAmB,uBAAuB;EvEm3Q5C;EuEl3QE;;IAEE,2BAA2B;EvEo3Q/B;EuEl3QE;;IAEE,6BAA6B;EvEo3QjC;EuEl3QE;;IAEE,8BAA8B;EvEo3QlC;EuEl3QE;;IAEE,4BAA4B;EvEo3QhC;AACF;;Ac93QI;EyDlDI;IAAgC,oBAA4B;EvEq7QlE;EuEp7QM;;IAEE,wBAAoC;EvEs7Q5C;EuEp7QM;;IAEE,0BAAwC;EvEs7QhD;EuEp7QM;;IAEE,2BAA0C;EvEs7QlD;EuEp7QM;;IAEE,yBAAsC;EvEs7Q9C;EuEr8QM;IAAgC,0BAA4B;EvEw8QlE;EuEv8QM;;IAEE,8BAAoC;EvEy8Q5C;EuEv8QM;;IAEE,gCAAwC;EvEy8QhD;EuEv8QM;;IAEE,iCAA0C;EvEy8QlD;EuEv8QM;;IAEE,+BAAsC;EvEy8Q9C;EuEx9QM;IAAgC,yBAA4B;EvE29QlE;EuE19QM;;IAEE,6BAAoC;EvE49Q5C;EuE19QM;;IAEE,+BAAwC;EvE49QhD;EuE19QM;;IAEE,gCAA0C;EvE49QlD;EuE19QM;;IAEE,8BAAsC;EvE49Q9C;EuE3+QM;IAAgC,uBAA4B;EvE8+QlE;EuE7+QM;;IAEE,2BAAoC;EvE++Q5C;EuE7+QM;;IAEE,6BAAwC;EvE++QhD;EuE7+QM;;IAEE,8BAA0C;EvE++QlD;EuE7+QM;;IAEE,4BAAsC;EvE++Q9C;EuE9/QM;IAAgC,yBAA4B;EvEigRlE;EuEhgRM;;IAEE,6BAAoC;EvEkgR5C;EuEhgRM;;IAEE,+BAAwC;EvEkgRhD;EuEhgRM;;IAEE,gCAA0C;EvEkgRlD;EuEhgRM;;IAEE,8BAAsC;EvEkgR9C;EuEjhRM;IAAgC,uBAA4B;EvEohRlE;EuEnhRM;;IAEE,2BAAoC;EvEqhR5C;EuEnhRM;;IAEE,6BAAwC;EvEqhRhD;EuEnhRM;;IAEE,8BAA0C;EvEqhRlD;EuEnhRM;;IAEE,4BAAsC;EvEqhR9C;EuEpiRM;IAAgC,qBAA4B;EvEuiRlE;EuEtiRM;;IAEE,yBAAoC;EvEwiR5C;EuEtiRM;;IAEE,2BAAwC;EvEwiRhD;EuEtiRM;;IAEE,4BAA0C;EvEwiRlD;EuEtiRM;;IAEE,0BAAsC;EvEwiR9C;EuEvjRM;IAAgC,2BAA4B;EvE0jRlE;EuEzjRM;;IAEE,+BAAoC;EvE2jR5C;EuEzjRM;;IAEE,iCAAwC;EvE2jRhD;EuEzjRM;;IAEE,kCAA0C;EvE2jRlD;EuEzjRM;;IAEE,gCAAsC;EvE2jR9C;EuE1kRM;IAAgC,0BAA4B;EvE6kRlE;EuE5kRM;;IAEE,8BAAoC;EvE8kR5C;EuE5kRM;;IAEE,gCAAwC;EvE8kRhD;EuE5kRM;;IAEE,iCAA0C;EvE8kRlD;EuE5kRM;;IAEE,+BAAsC;EvE8kR9C;EuE7lRM;IAAgC,wBAA4B;EvEgmRlE;EuE/lRM;;IAEE,4BAAoC;EvEimR5C;EuE/lRM;;IAEE,8BAAwC;EvEimRhD;EuE/lRM;;IAEE,+BAA0C;EvEimRlD;EuE/lRM;;IAEE,6BAAsC;EvEimR9C;EuEhnRM;IAAgC,0BAA4B;EvEmnRlE;EuElnRM;;IAEE,8BAAoC;EvEonR5C;EuElnRM;;IAEE,gCAAwC;EvEonRhD;EuElnRM;;IAEE,iCAA0C;EvEonRlD;EuElnRM;;IAEE,+BAAsC;EvEonR9C;EuEnoRM;IAAgC,wBAA4B;EvEsoRlE;EuEroRM;;IAEE,4BAAoC;EvEuoR5C;EuEroRM;;IAEE,8BAAwC;EvEuoRhD;EuEroRM;;IAEE,+BAA0C;EvEuoRlD;EuEroRM;;IAEE,6BAAsC;EvEuoR9C;EuE/nRM;IAAwB,2BAA2B;EvEkoRzD;EuEjoRM;;IAEE,+BAA+B;EvEmoRvC;EuEjoRM;;IAEE,iCAAiC;EvEmoRzC;EuEjoRM;;IAEE,kCAAkC;EvEmoR1C;EuEjoRM;;IAEE,gCAAgC;EvEmoRxC;EuElpRM;IAAwB,0BAA2B;EvEqpRzD;EuEppRM;;IAEE,8BAA+B;EvEspRvC;EuEppRM;;IAEE,gCAAiC;EvEspRzC;EuEppRM;;IAEE,iCAAkC;EvEspR1C;EuEppRM;;IAEE,+BAAgC;EvEspRxC;EuErqRM;IAAwB,wBAA2B;EvEwqRzD;EuEvqRM;;IAEE,4BAA+B;EvEyqRvC;EuEvqRM;;IAEE,8BAAiC;EvEyqRzC;EuEvqRM;;IAEE,+BAAkC;EvEyqR1C;EuEvqRM;;IAEE,6BAAgC;EvEyqRxC;EuExrRM;IAAwB,0BAA2B;EvE2rRzD;EuE1rRM;;IAEE,8BAA+B;EvE4rRvC;EuE1rRM;;IAEE,gCAAiC;EvE4rRzC;EuE1rRM;;IAEE,iCAAkC;EvE4rR1C;EuE1rRM;;IAEE,+BAAgC;EvE4rRxC;EuE3sRM;IAAwB,wBAA2B;EvE8sRzD;EuE7sRM;;IAEE,4BAA+B;EvE+sRvC;EuE7sRM;;IAEE,8BAAiC;EvE+sRzC;EuE7sRM;;IAEE,+BAAkC;EvE+sR1C;EuE7sRM;;IAEE,6BAAgC;EvE+sRxC;EuEzsRE;IAAmB,uBAAuB;EvE4sR5C;EuE3sRE;;IAEE,2BAA2B;EvE6sR/B;EuE3sRE;;IAEE,6BAA6B;EvE6sRjC;EuE3sRE;;IAEE,8BAA8B;EvE6sRlC;EuE3sRE;;IAEE,4BAA4B;EvE6sRhC;AACF;;AcvtRI;EyDlDI;IAAgC,oBAA4B;EvE8wRlE;EuE7wRM;;IAEE,wBAAoC;EvE+wR5C;EuE7wRM;;IAEE,0BAAwC;EvE+wRhD;EuE7wRM;;IAEE,2BAA0C;EvE+wRlD;EuE7wRM;;IAEE,yBAAsC;EvE+wR9C;EuE9xRM;IAAgC,0BAA4B;EvEiyRlE;EuEhyRM;;IAEE,8BAAoC;EvEkyR5C;EuEhyRM;;IAEE,gCAAwC;EvEkyRhD;EuEhyRM;;IAEE,iCAA0C;EvEkyRlD;EuEhyRM;;IAEE,+BAAsC;EvEkyR9C;EuEjzRM;IAAgC,yBAA4B;EvEozRlE;EuEnzRM;;IAEE,6BAAoC;EvEqzR5C;EuEnzRM;;IAEE,+BAAwC;EvEqzRhD;EuEnzRM;;IAEE,gCAA0C;EvEqzRlD;EuEnzRM;;IAEE,8BAAsC;EvEqzR9C;EuEp0RM;IAAgC,uBAA4B;EvEu0RlE;EuEt0RM;;IAEE,2BAAoC;EvEw0R5C;EuEt0RM;;IAEE,6BAAwC;EvEw0RhD;EuEt0RM;;IAEE,8BAA0C;EvEw0RlD;EuEt0RM;;IAEE,4BAAsC;EvEw0R9C;EuEv1RM;IAAgC,yBAA4B;EvE01RlE;EuEz1RM;;IAEE,6BAAoC;EvE21R5C;EuEz1RM;;IAEE,+BAAwC;EvE21RhD;EuEz1RM;;IAEE,gCAA0C;EvE21RlD;EuEz1RM;;IAEE,8BAAsC;EvE21R9C;EuE12RM;IAAgC,uBAA4B;EvE62RlE;EuE52RM;;IAEE,2BAAoC;EvE82R5C;EuE52RM;;IAEE,6BAAwC;EvE82RhD;EuE52RM;;IAEE,8BAA0C;EvE82RlD;EuE52RM;;IAEE,4BAAsC;EvE82R9C;EuE73RM;IAAgC,qBAA4B;EvEg4RlE;EuE/3RM;;IAEE,yBAAoC;EvEi4R5C;EuE/3RM;;IAEE,2BAAwC;EvEi4RhD;EuE/3RM;;IAEE,4BAA0C;EvEi4RlD;EuE/3RM;;IAEE,0BAAsC;EvEi4R9C;EuEh5RM;IAAgC,2BAA4B;EvEm5RlE;EuEl5RM;;IAEE,+BAAoC;EvEo5R5C;EuEl5RM;;IAEE,iCAAwC;EvEo5RhD;EuEl5RM;;IAEE,kCAA0C;EvEo5RlD;EuEl5RM;;IAEE,gCAAsC;EvEo5R9C;EuEn6RM;IAAgC,0BAA4B;EvEs6RlE;EuEr6RM;;IAEE,8BAAoC;EvEu6R5C;EuEr6RM;;IAEE,gCAAwC;EvEu6RhD;EuEr6RM;;IAEE,iCAA0C;EvEu6RlD;EuEr6RM;;IAEE,+BAAsC;EvEu6R9C;EuEt7RM;IAAgC,wBAA4B;EvEy7RlE;EuEx7RM;;IAEE,4BAAoC;EvE07R5C;EuEx7RM;;IAEE,8BAAwC;EvE07RhD;EuEx7RM;;IAEE,+BAA0C;EvE07RlD;EuEx7RM;;IAEE,6BAAsC;EvE07R9C;EuEz8RM;IAAgC,0BAA4B;EvE48RlE;EuE38RM;;IAEE,8BAAoC;EvE68R5C;EuE38RM;;IAEE,gCAAwC;EvE68RhD;EuE38RM;;IAEE,iCAA0C;EvE68RlD;EuE38RM;;IAEE,+BAAsC;EvE68R9C;EuE59RM;IAAgC,wBAA4B;EvE+9RlE;EuE99RM;;IAEE,4BAAoC;EvEg+R5C;EuE99RM;;IAEE,8BAAwC;EvEg+RhD;EuE99RM;;IAEE,+BAA0C;EvEg+RlD;EuE99RM;;IAEE,6BAAsC;EvEg+R9C;EuEx9RM;IAAwB,2BAA2B;EvE29RzD;EuE19RM;;IAEE,+BAA+B;EvE49RvC;EuE19RM;;IAEE,iCAAiC;EvE49RzC;EuE19RM;;IAEE,kCAAkC;EvE49R1C;EuE19RM;;IAEE,gCAAgC;EvE49RxC;EuE3+RM;IAAwB,0BAA2B;EvE8+RzD;EuE7+RM;;IAEE,8BAA+B;EvE++RvC;EuE7+RM;;IAEE,gCAAiC;EvE++RzC;EuE7+RM;;IAEE,iCAAkC;EvE++R1C;EuE7+RM;;IAEE,+BAAgC;EvE++RxC;EuE9/RM;IAAwB,wBAA2B;EvEigSzD;EuEhgSM;;IAEE,4BAA+B;EvEkgSvC;EuEhgSM;;IAEE,8BAAiC;EvEkgSzC;EuEhgSM;;IAEE,+BAAkC;EvEkgS1C;EuEhgSM;;IAEE,6BAAgC;EvEkgSxC;EuEjhSM;IAAwB,0BAA2B;EvEohSzD;EuEnhSM;;IAEE,8BAA+B;EvEqhSvC;EuEnhSM;;IAEE,gCAAiC;EvEqhSzC;EuEnhSM;;IAEE,iCAAkC;EvEqhS1C;EuEnhSM;;IAEE,+BAAgC;EvEqhSxC;EuEpiSM;IAAwB,wBAA2B;EvEuiSzD;EuEtiSM;;IAEE,4BAA+B;EvEwiSvC;EuEtiSM;;IAEE,8BAAiC;EvEwiSzC;EuEtiSM;;IAEE,+BAAkC;EvEwiS1C;EuEtiSM;;IAEE,6BAAgC;EvEwiSxC;EuEliSE;IAAmB,uBAAuB;EvEqiS5C;EuEpiSE;;IAEE,2BAA2B;EvEsiS/B;EuEpiSE;;IAEE,6BAA6B;EvEsiSjC;EuEpiSE;;IAEE,8BAA8B;EvEsiSlC;EuEpiSE;;IAEE,4BAA4B;EvEsiShC;AACF;;AwExmSA;EAEI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,UAAU;EAEV,oBAAoB;EACpB,WAAW;EAEX,kCAAkC;AxEwmStC;;AyElnSA;EAAkB,4GAA8C;AzEsnShE;;AyElnSA;EAAiB,8BAA8B;AzEsnS/C;;AyErnSA;EAAiB,8BAA8B;AzEynS/C;;AyExnSA;EAAiB,8BAA8B;AzE4nS/C;;AyE3nSA;ECTE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;A1EwoSrB;;AyEznSI;EAAwB,2BAA2B;AzE6nSvD;;AyE5nSI;EAAwB,4BAA4B;AzEgoSxD;;AyE/nSI;EAAwB,6BAA6B;AzEmoSzD;;Ac9lSI;E2DvCA;IAAwB,2BAA2B;EzE0oSrD;EyEzoSE;IAAwB,4BAA4B;EzE4oStD;EyE3oSE;IAAwB,6BAA6B;EzE8oSvD;AACF;;Ac1mSI;E2DvCA;IAAwB,2BAA2B;EzEspSrD;EyErpSE;IAAwB,4BAA4B;EzEwpStD;EyEvpSE;IAAwB,6BAA6B;EzE0pSvD;AACF;;ActnSI;E2DvCA;IAAwB,2BAA2B;EzEkqSrD;EyEjqSE;IAAwB,4BAA4B;EzEoqStD;EyEnqSE;IAAwB,6BAA6B;EzEsqSvD;AACF;;AcloSI;E2DvCA;IAAwB,2BAA2B;EzE8qSrD;EyE7qSE;IAAwB,4BAA4B;EzEgrStD;EyE/qSE;IAAwB,6BAA6B;EzEkrSvD;AACF;;AyE7qSA;EAAmB,oCAAoC;AzEirSvD;;AyEhrSA;EAAmB,oCAAoC;AzEorSvD;;AyEnrSA;EAAmB,qCAAqC;AzEurSxD;;AyEnrSA;EAAuB,2BAA0C;AzEurSjE;;AyEtrSA;EAAuB,+BAA4C;AzE0rSnE;;AyEzrSA;EAAuB,2BAA2C;AzE6rSlE;;AyE5rSA;EAAuB,2BAAyC;AzEgsShE;;AyE/rSA;EAAuB,8BAA2C;AzEmsSlE;;AyElsSA;EAAuB,6BAA6B;AzEssSpD;;AyElsSA;EAAc,sBAAwB;AzEssStC;;A2E7uSE;EACE,yBAAwB;A3EgvS5B;;AKtuSE;EsELM,yBAA0E;A3E+uSlF;;A2ErvSE;EACE,yBAAwB;A3EwvS5B;;AK9uSE;EsELM,yBAA0E;A3EuvSlF;;A2E7vSE;EACE,yBAAwB;A3EgwS5B;;AKtvSE;EsELM,yBAA0E;A3E+vSlF;;A2ErwSE;EACE,yBAAwB;A3EwwS5B;;AK9vSE;EsELM,yBAA0E;A3EuwSlF;;A2E7wSE;EACE,yBAAwB;A3EgxS5B;;AKtwSE;EsELM,yBAA0E;A3E+wSlF;;A2ErxSE;EACE,yBAAwB;A3EwxS5B;;AK9wSE;EsELM,yBAA0E;A3EuxSlF;;A2E7xSE;EACE,yBAAwB;A3EgyS5B;;AKtxSE;EsELM,yBAA0E;A3E+xSlF;;A2ErySE;EACE,yBAAwB;A3EwyS5B;;AK9xSE;EsELM,yBAA0E;A3EuySlF;;AyEhwSA;EAAa,yBAA6B;AzEowS1C;;AyEnwSA;EAAc,yBAA6B;AzEuwS3C;;AyErwSA;EAAiB,oCAAkC;AzEywSnD;;AyExwSA;EAAiB,0CAAkC;AzE4wSnD;;AyExwSA;EGvDE,WAAW;EACX,kBAAkB;EAClB,iBAAiB;EACjB,6BAA6B;EAC7B,SAAS;A5Em0SX;;AyE5wSA;EAAwB,gCAAgC;AzEgxSxD;;AyE9wSA;EACE,iCAAiC;EACjC,oCAAoC;AzEixStC;;AyE5wSA;EAAc,yBAAyB;AzEgxSvC;;A6Ej1SA;EACE,8BAA8B;A7Eo1ShC;;A6Ej1SA;EACE,6BAA6B;A7Eo1S/B;;A8Ep1SE;E5EOF;;;I4EDM,4BAA4B;IAE5B,2BAA2B;E9Eo1S/B;E8Ej1SE;IAEI,0BAA0B;E9Ek1ShC;E8Ez0SE;IACE,6BAA6B;E9E20SjC;EE7oSF;I4E/KM,gCAAgC;E9E+zSpC;E8E7zSE;;IAEE,yB3EzCY;I2E0CZ,wBAAwB;E9E+zS5B;E8EvzSE;IACE,2BAA2B;E9EyzS/B;E8EtzSE;;IAEE,wBAAwB;E9EwzS5B;E8ErzSE;;;IAGE,UAAU;IACV,SAAS;E9EuzSb;E8EpzSE;;IAEE,uBAAuB;E9EszS3B;E8E9ySE;IACE,Q3EyhCgC;EHuxQpC;EE51SF;I4E+CM,2BAA2C;E9EgzS/C;E8E9ySE;IACE,2BAA2C;E9EgzS/C;EiC93SF;I6CmFM,aAAa;E9E8ySjB;EsC74SF;IwCkGM,sB3EtFS;EHo4Sb;EgBj5SF;I8DuGM,oCAAoC;E9E6ySxC;E8E9ySE;;IAKI,iCAAmC;E9E6ySzC;EgBh3SF;;I8D0EQ,oCAAsC;E9E0yS5C;EgB/xSF;I8DNM,cAAc;E9EwySlB;EiB95SA;;;;I6D4HM,qB3EvHU;EH+5ShB;EgB1zSF;I8DuBM,cAAc;IACd,qB3E7HY;EHm6ShB;AACF","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n","/*!\n * Bootstrap v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\ninput[type=\"date\"].form-control,\ninput[type=\"time\"].form-control,\ninput[type=\"datetime-local\"].form-control,\ninput[type=\"month\"].form-control {\n appearance: none;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n}\n\n.card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n border-top: 0;\n}\n\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion {\n overflow-anchor: none;\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item {\n display: flex;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n line-height: 0;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: 0.25rem;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n}\n\n.list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n.list-group-flush {\n border-radius: 0;\n}\n\n.list-group-flush > .list-group-item {\n border-width: 0 0 1px;\n}\n\n.list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n flex-basis: 350px;\n max-width: 350px;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n height: min-content;\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n height: min-content;\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.user-select-all {\n user-select: all !important;\n}\n\n.user-select-auto {\n user-select: auto !important;\n}\n\n.user-select-none {\n user-select: none !important;\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// Do not forget to update getting-started/theming.md!\n:root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\n // making it impossible to interact with the content\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Set the cursor for non-`<button>` buttons\n//\n// Details at https://github.com/twbs/bootstrap/pull/30562\n[role=\"button\"] {\n cursor: pointer;\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n$grid-row-columns: 6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y / 2) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n$custom-control-cursor: null !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: null !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: null !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'><path stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/></svg>\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: null !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'><circle r='3' fill='#{$custom-control-indicator-checked-color}'/></svg>\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'><path fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>\") !default;\n$custom-select-background: escape-svg($custom-select-indicator) no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>\") !default;\n\n$form-validation-states: () !default;\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n$dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size: null !default;\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/></svg>\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/></svg>\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n$user-selects: all, auto, none !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n &:hover { @content; }\n}\n\n@mixin hover-focus() {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus() {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active() {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { @include font-size($h1-font-size); }\nh2, .h2 { @include font-size($h2-font-size); }\nh3, .h3 { @include font-size($h3-font-size); }\nh4, .h4 { @include font-size($h4-font-size); }\nh5, .h5 { @include font-size($h5-font-size); }\nh6, .h6 { @include font-size($h6-font-size); }\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n @include font-size($display1-size);\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n @include font-size($display2-size);\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n @include font-size($display3-size);\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n @include font-size($display4-size);\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n @include font-size($small-font-size);\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled();\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled();\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size(90%);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n @include font-size($blockquote-font-size);\n}\n\n.blockquote-footer {\n display: block;\n @include font-size($blockquote-small-font-size);\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled() {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid();\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid();\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: $spacer / 2;\n line-height: 1;\n}\n\n.figure-caption {\n @include font-size($figure-caption-font-size);\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid() {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n @include deprecate(\"`img-retina()`\", \"v4.3.0\", \"v5\");\n}\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n $return: ();\n @each $value in $radius {\n @if type-of($value) == number {\n $return: append($return, max($value, 0));\n } @else {\n $return: append($return, $value);\n }\n }\n @return $return;\n}\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: valid-radius($radius);\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-right-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-left-radius($radius) {\n @if $enable-rounded {\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n","// Inline code\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n @include font-size(100%);\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n @include deprecate(\"The `make-container-max-widths` mixin\", \"v4.5.2\", \"v5\");\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n & > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @if $columns > 0 {\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n }\n\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n @if $columns > 0 {\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n margin-bottom: $spacer;\n color: $table-color;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: 2 * $table-border-width;\n }\n }\n}\n\n.table-borderless {\n th,\n td,\n thead th,\n tbody + tbody {\n border: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover() {\n color: $table-hover-color;\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover() {\n color: $table-dark-hover-color;\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n\n @if $border != null {\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $border;\n }\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover() {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// Bootstrap functions\n//\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n $prev-key: null;\n $prev-num: null;\n @each $key, $num in $map {\n @if $prev-num == null or unit($num) == \"%\" or unit($prev-num) == \"%\" {\n // Do nothing\n } @else if not comparable($prev-num, $num) {\n @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n } @else if $prev-num >= $num {\n @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n }\n $prev-key: $key;\n $prev-num: $num;\n }\n}\n\n// Starts at zero\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map, $map-name: \"$grid-breakpoints\") {\n @if length($map) > 0 {\n $values: map-values($map);\n $first-value: nth($values, 1);\n @if $first-value != 0 {\n @warn \"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\";\n }\n }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n $index: str-index($string, $search);\n\n @if $index {\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n }\n\n @return $string;\n}\n\n// See https://codepen.io/kevinweber/pen/dXWoRw\n@function escape-svg($string) {\n @if str-index($string, \"data:image/svg+xml\") {\n @each $char, $encoded in $escaped-characters {\n // Do not escape the url brackets\n @if str-index($string, \"url(\") == 1 {\n $string: url(\"#{str-replace(str-slice($string, 6, -3), $char, $encoded)}\");\n } @else {\n $string: str-replace($string, $char, $encoded);\n }\n }\n }\n\n @return $string;\n}\n\n// Color contrast\n@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {\n $r: red($color);\n $g: green($color);\n $b: blue($color);\n\n $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n @if ($yiq >= $yiq-contrasted-threshold) {\n @return $dark;\n } @else {\n @return $light;\n }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n $color: theme-color($color-name);\n $color-base: if($level > 0, $black, $white);\n $level: abs($level);\n\n @return mix($color-base, $color, $level * $theme-color-interval);\n}\n\n// Return valid calc\n@function add($value1, $value2, $return-calc: true) {\n @if $value1 == null {\n @return $value2;\n }\n\n @if $value2 == null {\n @return $value1;\n }\n\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n @return $value1 + $value2;\n }\n\n @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(\" + \") + $value2);\n}\n\n@function subtract($value1, $value2, $return-calc: true) {\n @if $value1 == null and $value2 == null {\n @return null;\n }\n\n @if $value1 == null {\n @return -$value2;\n }\n\n @if $value2 == null {\n @return $value1;\n }\n\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n @return $value1 - $value2;\n }\n\n @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(\" - \") + $value2);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n height: $input-height;\n padding: $input-padding-y $input-padding-x;\n font-family: $input-font-family;\n @include font-size($input-font-size);\n font-weight: $input-font-weight;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n @include border-radius($input-border-radius, 0);\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on `<select>`s in IE10+.\n &::-ms-expand {\n background-color: transparent;\n border: 0;\n }\n\n // Remove select outline from select box in FF\n &:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 $input-color;\n }\n\n // Customize the `:focus` state to imitate native WebKit styles.\n @include form-control-focus($ignore-warning: true);\n\n // Placeholder\n &::placeholder {\n color: $input-placeholder-color;\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n opacity: 1;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &:disabled,\n &[readonly] {\n background-color: $input-disabled-bg;\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n opacity: 1;\n }\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n &.form-control {\n appearance: none; // Fix appearance for date inputs in Safari\n }\n}\n\nselect.form-control {\n &:focus::-ms-value {\n // Suppress the nested default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: add($input-padding-y, $input-border-width);\n padding-bottom: add($input-padding-y, $input-border-width);\n margin-bottom: 0; // Override the `<label>/<legend>` default\n @include font-size(inherit); // Override the `<legend>` default\n line-height: $input-line-height;\n}\n\n.col-form-label-lg {\n padding-top: add($input-padding-y-lg, $input-border-width);\n padding-bottom: add($input-padding-y-lg, $input-border-width);\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n}\n\n.col-form-label-sm {\n padding-top: add($input-padding-y-sm, $input-border-width);\n padding-bottom: add($input-padding-y-sm, $input-border-width);\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n}\n\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: $input-padding-y 0;\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n @include font-size($input-font-size);\n line-height: $input-line-height;\n color: $input-plaintext-color;\n background-color: transparent;\n border: solid transparent;\n border-width: $input-border-width 0;\n\n &.form-control-sm,\n &.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// Repeated in `_input_group.scss` to avoid Sass extend issues.\n\n.form-control-sm {\n height: $input-height-sm;\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\n.form-control-lg {\n height: $input-height-lg;\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\n// stylelint-disable-next-line no-duplicate-selectors\nselect.form-control {\n &[size],\n &[multiple] {\n height: auto;\n }\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: $form-group-margin-bottom;\n}\n\n.form-text {\n display: block;\n margin-top: $form-text-margin-top;\n}\n\n\n// Form grid\n//\n// Special replacement for our grid system's `.row` for tighter form layouts.\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$form-grid-gutter-width / 2;\n margin-left: -$form-grid-gutter-width / 2;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: $form-grid-gutter-width / 2;\n padding-left: $form-grid-gutter-width / 2;\n }\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.form-check {\n position: relative;\n display: block;\n padding-left: $form-check-input-gutter;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: $form-check-input-margin-y;\n margin-left: -$form-check-input-gutter;\n\n // Use [disabled] and :disabled for workaround https://github.com/twbs/bootstrap/issues/28247\n &[disabled] ~ .form-check-label,\n &:disabled ~ .form-check-label {\n color: $text-muted;\n }\n}\n\n.form-check-label {\n margin-bottom: 0; // Override default `<label>` bottom margin\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0; // Override base .form-check\n margin-right: $form-check-inline-margin-x;\n\n // Undo .form-check-input defaults and add some `margin-right`.\n .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: $form-check-inline-input-margin-x;\n margin-left: 0;\n }\n}\n\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server side validation.\n\n@each $state, $data in $form-validation-states {\n @include form-validation-state($state, map-get($data, color), map-get($data, icon));\n}\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)\n\n // Because we use flex, the initial sizing of checkboxes is collapsed and\n // doesn't occupy the full-width (which is what we want for xs grid tier),\n // so we force that here.\n .form-check {\n width: 100%;\n }\n\n // Kick in the inline\n @include media-breakpoint-up(sm) {\n label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n\n // Inline-block all the things for \"inline\"\n .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n\n // Allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n\n // Make static controls behave like regular ones\n .form-control-plaintext {\n display: inline-block;\n }\n\n .input-group,\n .custom-select {\n width: auto;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match.\n .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: $form-check-input-margin-x;\n margin-left: 0;\n }\n\n .custom-control {\n align-items: center;\n justify-content: center;\n }\n .custom-control-label {\n margin-bottom: 0;\n }\n }\n}\n","// stylelint-disable property-blacklist\n@mixin transition($transition...) {\n @if length($transition) == 0 {\n $transition: $transition-base;\n }\n\n @if length($transition) > 1 {\n @each $value in $transition {\n @if $value == null or $value == none {\n @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n }\n }\n }\n\n @if $enable-transitions {\n @if nth($transition, 1) != null {\n transition: $transition;\n }\n\n @if $enable-prefers-reduced-motion-media-query and nth($transition, 1) != null and nth($transition, 1) != none {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n }\n}\n","// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus($ignore-warning: false) {\n &:focus {\n color: $input-focus-color;\n background-color: $input-focus-bg;\n border-color: $input-focus-border-color;\n outline: 0;\n @if $enable-shadows {\n @include box-shadow($input-box-shadow, $input-focus-box-shadow);\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: $input-focus-box-shadow;\n }\n }\n @include deprecate(\"The `form-control-focus()` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n\n// This mixin uses an `if()` technique to be compatible with Dart Sass\n// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details\n@mixin form-validation-state-selector($state) {\n @if ($state == \"valid\" or $state == \"invalid\") {\n .was-validated #{if(&, \"&\", \"\")}:#{$state},\n #{if(&, \"&\", \"\")}.is-#{$state} {\n @content;\n }\n } @else {\n #{if(&, \"&\", \"\")}.is-#{$state} {\n @content;\n }\n }\n}\n\n@mixin form-validation-state($state, $color, $icon) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n margin-top: $form-feedback-margin-top;\n @include font-size($form-feedback-font-size);\n color: $color;\n }\n\n .#{$state}-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%; // Contain to parent when possible\n padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\n margin-top: .1rem;\n @include font-size($form-feedback-tooltip-font-size);\n line-height: $form-feedback-tooltip-line-height;\n color: color-yiq($color);\n background-color: rgba($color, $form-feedback-tooltip-opacity);\n @include border-radius($form-feedback-tooltip-border-radius);\n }\n\n @include form-validation-state-selector($state) {\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n\n .form-control {\n @include form-validation-state-selector($state) {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-image: escape-svg($icon);\n background-repeat: no-repeat;\n background-position: right $input-height-inner-quarter center;\n background-size: $input-height-inner-half $input-height-inner-half;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n\n // stylelint-disable-next-line selector-no-qualifying-type\n textarea.form-control {\n @include form-validation-state-selector($state) {\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\n }\n }\n }\n\n .custom-select {\n @include form-validation-state-selector($state) {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $custom-select-feedback-icon-padding-right;\n background: $custom-select-background, escape-svg($icon) $custom-select-bg no-repeat $custom-select-feedback-icon-position / $custom-select-feedback-icon-size;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n\n .form-check-input {\n @include form-validation-state-selector($state) {\n ~ .form-check-label {\n color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .custom-control-input {\n @include form-validation-state-selector($state) {\n ~ .custom-control-label {\n color: $color;\n\n &::before {\n border-color: $color;\n }\n }\n\n &:checked {\n ~ .custom-control-label::before {\n border-color: lighten($color, 10%);\n @include gradient-bg(lighten($color, 10%));\n }\n }\n\n &:focus {\n ~ .custom-control-label::before {\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n &:not(:checked) ~ .custom-control-label::before {\n border-color: $color;\n }\n }\n }\n }\n\n // custom file\n .custom-file-input {\n @include form-validation-state-selector($state) {\n ~ .custom-file-label {\n border-color: $color;\n }\n\n &:focus {\n ~ .custom-file-label {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n}\n","// Gradients\n\n@mixin gradient-bg($color) {\n @if $enable-gradients {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\n } @else {\n background-color: $color;\n }\n}\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n background-repeat: repeat-x;\n}\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.btn {\n display: inline-block;\n font-family: $btn-font-family;\n font-weight: $btn-font-weight;\n color: $body-color;\n text-align: center;\n text-decoration: if($link-decoration == none, null, none);\n white-space: $btn-white-space;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: $btn-border-width solid transparent;\n @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);\n @include transition($btn-transition);\n\n @include hover() {\n color: $body-color;\n text-decoration: none;\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: $btn-focus-box-shadow;\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n opacity: $btn-disabled-opacity;\n @include box-shadow(none);\n }\n\n &:not(:disabled):not(.disabled) {\n cursor: if($enable-pointer-cursor-for-buttons, pointer, null);\n\n &:active,\n &.active {\n @include box-shadow($btn-active-box-shadow);\n\n &:focus {\n @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n }\n }\n }\n}\n\n// Future-proof disabling of clicks on `<a>` elements\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n .btn-#{$color} {\n @include button-variant($value, $value);\n }\n}\n\n@each $color, $value in $theme-colors {\n .btn-outline-#{$color} {\n @include button-outline-variant($value);\n }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n font-weight: $font-weight-normal;\n color: $link-color;\n text-decoration: $link-decoration;\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n\n &:focus,\n &.focus {\n text-decoration: $link-hover-decoration;\n }\n\n &:disabled,\n &.disabled {\n color: $btn-link-disabled-color;\n pointer-events: none;\n }\n\n // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\n}\n\n\n//\n// Block button\n//\n\n.btn-block {\n display: block;\n width: 100%;\n\n // Vertically space out multiple block buttons\n + .btn-block {\n margin-top: $btn-block-spacing-y;\n }\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\n color: color-yiq($background);\n @include gradient-bg($background);\n border-color: $border;\n @include box-shadow($btn-box-shadow);\n\n @include hover() {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n }\n\n &:focus,\n &.focus {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n @if $enable-shadows {\n @include box-shadow($btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n color: color-yiq($background);\n background-color: $background;\n border-color: $border;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n @if $enable-gradients {\n background-image: none; // Remove the gradient for the pressed/active state\n }\n border-color: $active-border;\n\n &:focus {\n @if $enable-shadows and $btn-active-box-shadow != none {\n @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n }\n}\n\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\n color: $color;\n border-color: $color;\n\n @include hover() {\n color: $color-hover;\n background-color: $active-background;\n border-color: $active-border;\n }\n\n &:focus,\n &.focus {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n\n &.disabled,\n &:disabled {\n color: $color;\n background-color: transparent;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n border-color: $active-border;\n\n &:focus {\n @if $enable-shadows and $btn-active-box-shadow != none {\n @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5));\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n }\n }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n line-height: $line-height;\n // Manually declare to provide an override to the browser default\n @include border-radius($border-radius, 0);\n}\n",".fade {\n @include transition($transition-fade);\n\n &:not(.show) {\n opacity: 0;\n }\n}\n\n.collapse {\n &:not(.show) {\n display: none;\n }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n}\n","// The dropdown wrapper (`<div>`)\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n\n // Generate the caret automatically\n @include caret();\n}\n\n// The dropdown menu\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: $zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: $dropdown-min-width;\n padding: $dropdown-padding-y 0;\n margin: $dropdown-spacer 0 0; // override default ul\n @include font-size($dropdown-font-size);\n color: $dropdown-color;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n list-style: none;\n background-color: $dropdown-bg;\n background-clip: padding-box;\n border: $dropdown-border-width solid $dropdown-border-color;\n @include border-radius($dropdown-border-radius);\n @include box-shadow($dropdown-box-shadow);\n}\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .dropdown-menu#{$infix}-left {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu#{$infix}-right {\n right: 0;\n left: auto;\n }\n }\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(up);\n }\n}\n\n.dropright {\n .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(right);\n &::after {\n vertical-align: 0;\n }\n }\n}\n\n.dropleft {\n .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(left);\n &::before {\n vertical-align: 0;\n }\n }\n}\n\n// When enabled Popper.js, reset basic dropdown position\n// stylelint-disable-next-line no-duplicate-selectors\n.dropdown-menu {\n &[x-placement^=\"top\"],\n &[x-placement^=\"right\"],\n &[x-placement^=\"bottom\"],\n &[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n }\n}\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n @include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y, true);\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n display: block;\n width: 100%; // For `<button>`s\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n clear: both;\n font-weight: $font-weight-normal;\n color: $dropdown-link-color;\n text-align: inherit; // For `<button>`s\n text-decoration: if($link-decoration == none, null, none);\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n background-color: transparent; // For `<button>`s\n border: 0; // For `<button>`s\n\n // Prevent dropdown overflow if there's no padding\n // See https://github.com/twbs/bootstrap/pull/27703\n @if $dropdown-padding-y == 0 {\n &:first-child {\n @include border-top-radius($dropdown-inner-border-radius);\n }\n\n &:last-child {\n @include border-bottom-radius($dropdown-inner-border-radius);\n }\n }\n\n @include hover-focus() {\n color: $dropdown-link-hover-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-hover-bg);\n }\n\n &.active,\n &:active {\n color: $dropdown-link-active-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-active-bg);\n }\n\n &.disabled,\n &:disabled {\n color: $dropdown-link-disabled-color;\n pointer-events: none;\n background-color: transparent;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: $dropdown-header-padding;\n margin-bottom: 0; // for use with heading elements\n @include font-size($font-size-sm);\n color: $dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Dropdown text\n.dropdown-item-text {\n display: block;\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n color: $dropdown-link-color;\n}\n","@mixin caret-down() {\n border-top: $caret-width solid;\n border-right: $caret-width solid transparent;\n border-bottom: 0;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up() {\n border-top: 0;\n border-right: $caret-width solid transparent;\n border-bottom: $caret-width solid;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-right() {\n border-top: $caret-width solid transparent;\n border-right: 0;\n border-bottom: $caret-width solid transparent;\n border-left: $caret-width solid;\n}\n\n@mixin caret-left() {\n border-top: $caret-width solid transparent;\n border-right: $caret-width solid;\n border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n @if $enable-caret {\n &::after {\n display: inline-block;\n margin-left: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @if $direction == down {\n @include caret-down();\n } @else if $direction == up {\n @include caret-up();\n } @else if $direction == right {\n @include caret-right();\n }\n }\n\n @if $direction == left {\n &::after {\n display: none;\n }\n\n &::before {\n display: inline-block;\n margin-right: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @include caret-left();\n }\n }\n\n &:empty::after {\n margin-left: 0;\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y, $ignore-warning: false) {\n height: 0;\n margin: $margin-y 0;\n overflow: hidden;\n border-top: 1px solid $color;\n @include deprecate(\"The `nav-divider()` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; // match .btn alignment given font-size hack above\n\n > .btn {\n position: relative;\n flex: 1 1 auto;\n\n // Bring the hover, focused, and \"active\" buttons to the front to overlay\n // the borders properly\n @include hover() {\n z-index: 1;\n }\n &:focus,\n &:active,\n &.active {\n z-index: 1;\n }\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n\n .input-group {\n width: auto;\n }\n}\n\n.btn-group {\n // Prevent double borders when buttons are next to each other\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-left: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-right-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-left-radius(0);\n }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n padding-right: $btn-padding-x * .75;\n padding-left: $btn-padding-x * .75;\n\n &::after,\n .dropup &::after,\n .dropright &::after {\n margin-left: 0;\n }\n\n .dropleft &::before {\n margin-right: 0;\n }\n}\n\n.btn-sm + .dropdown-toggle-split {\n padding-right: $btn-padding-x-sm * .75;\n padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n padding-right: $btn-padding-x-lg * .75;\n padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n @include box-shadow($btn-active-box-shadow);\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n @include box-shadow(none);\n }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n > .btn,\n > .btn-group {\n width: 100%;\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-top: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-bottom-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-top-radius(0);\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n.btn-group-toggle {\n > .btn,\n > .btn-group > .btn {\n margin-bottom: 0; // Override default `<label>` value\n\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap; // For form validation feedback\n align-items: stretch;\n width: 100%;\n\n > .form-control,\n > .form-control-plaintext,\n > .custom-select,\n > .custom-file {\n position: relative; // For focus state's z-index\n flex: 1 1 auto;\n width: 1%;\n min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size\n margin-bottom: 0;\n\n + .form-control,\n + .custom-select,\n + .custom-file {\n margin-left: -$input-border-width;\n }\n }\n\n // Bring the \"active\" form control to the top of surrounding elements\n > .form-control:focus,\n > .custom-select:focus,\n > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n }\n\n // Bring the custom file input above the label\n > .custom-file .custom-file-input:focus {\n z-index: 4;\n }\n\n > .form-control,\n > .custom-select {\n &:not(:last-child) { @include border-right-radius(0); }\n &:not(:first-child) { @include border-left-radius(0); }\n }\n\n // Custom file inputs have more complex markup, thus requiring different\n // border-radius overrides.\n > .custom-file {\n display: flex;\n align-items: center;\n\n &:not(:last-child) .custom-file-label,\n &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }\n &:not(:first-child) .custom-file-label { @include border-left-radius(0); }\n }\n}\n\n\n// Prepend and append\n//\n// While it requires one extra layer of HTML for each, dedicated prepend and\n// append elements allow us to 1) be less clever, 2) simplify our selectors, and\n// 3) support HTML5 form validation.\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n\n // Ensure buttons are always above inputs for more visually pleasing borders.\n // This isn't needed for `.input-group-text` since it shares the same border-color\n // as our inputs.\n .btn {\n position: relative;\n z-index: 2;\n\n &:focus {\n z-index: 3;\n }\n }\n\n .btn + .btn,\n .btn + .input-group-text,\n .input-group-text + .input-group-text,\n .input-group-text + .btn {\n margin-left: -$input-border-width;\n }\n}\n\n.input-group-prepend { margin-right: -$input-border-width; }\n.input-group-append { margin-left: -$input-border-width; }\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: $input-padding-y $input-padding-x;\n margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom\n @include font-size($input-font-size); // Match inputs\n font-weight: $font-weight-normal;\n line-height: $input-line-height;\n color: $input-group-addon-color;\n text-align: center;\n white-space: nowrap;\n background-color: $input-group-addon-bg;\n border: $input-border-width solid $input-group-addon-border-color;\n @include border-radius($input-border-radius);\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: $input-height-lg;\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: $input-height-sm;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: $custom-select-padding-x + $custom-select-indicator-padding;\n}\n\n\n// Prepend and append rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n @include border-right-radius(0);\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n @include border-left-radius(0);\n}\n","// Embedded icons from Open Iconic.\n// Released under MIT and copyright 2014 Waybury.\n// https://useiconic.com/open\n\n\n// Checkboxes and radios\n//\n// Base class takes care of all the key behavioral aspects.\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: $font-size-base * $line-height-base;\n padding-left: $custom-control-gutter + $custom-control-indicator-size;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: $custom-control-spacer-x;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1; // Put the input behind the label so it doesn't overlay text\n width: $custom-control-indicator-size;\n height: ($font-size-base * $line-height-base + $custom-control-indicator-size) / 2;\n opacity: 0;\n\n &:checked ~ .custom-control-label::before {\n color: $custom-control-indicator-checked-color;\n border-color: $custom-control-indicator-checked-border-color;\n @include gradient-bg($custom-control-indicator-checked-bg);\n @include box-shadow($custom-control-indicator-checked-box-shadow);\n }\n\n &:focus ~ .custom-control-label::before {\n // the mixin is not used here to make sure there is feedback\n @if $enable-shadows {\n box-shadow: $input-box-shadow, $input-focus-box-shadow;\n } @else {\n box-shadow: $custom-control-indicator-focus-box-shadow;\n }\n }\n\n &:focus:not(:checked) ~ .custom-control-label::before {\n border-color: $custom-control-indicator-focus-border-color;\n }\n\n &:not(:disabled):active ~ .custom-control-label::before {\n color: $custom-control-indicator-active-color;\n background-color: $custom-control-indicator-active-bg;\n border-color: $custom-control-indicator-active-border-color;\n @include box-shadow($custom-control-indicator-active-box-shadow);\n }\n\n // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247\n &[disabled],\n &:disabled {\n ~ .custom-control-label {\n color: $custom-control-label-disabled-color;\n\n &::before {\n background-color: $custom-control-indicator-disabled-bg;\n }\n }\n }\n}\n\n// Custom control indicators\n//\n// Build the custom controls out of pseudo-elements.\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n color: $custom-control-label-color;\n vertical-align: top;\n cursor: $custom-control-cursor;\n\n // Background-color and (when enabled) gradient\n &::before {\n position: absolute;\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n left: -($custom-control-gutter + $custom-control-indicator-size);\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n pointer-events: none;\n content: \"\";\n background-color: $custom-control-indicator-bg;\n border: $custom-control-indicator-border-color solid $custom-control-indicator-border-width;\n @include box-shadow($custom-control-indicator-box-shadow);\n }\n\n // Foreground (icon)\n &::after {\n position: absolute;\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n left: -($custom-control-gutter + $custom-control-indicator-size);\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n content: \"\";\n background: no-repeat 50% / #{$custom-control-indicator-bg-size};\n }\n}\n\n\n// Checkboxes\n//\n// Tweak just a few things for checkboxes.\n\n.custom-checkbox {\n .custom-control-label::before {\n @include border-radius($custom-checkbox-indicator-border-radius);\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-image: escape-svg($custom-checkbox-indicator-icon-checked);\n }\n }\n\n .custom-control-input:indeterminate ~ .custom-control-label {\n &::before {\n border-color: $custom-checkbox-indicator-indeterminate-border-color;\n @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);\n @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);\n }\n &::after {\n background-image: escape-svg($custom-checkbox-indicator-icon-indeterminate);\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n }\n &:indeterminate ~ .custom-control-label::before {\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n }\n }\n}\n\n// Radios\n//\n// Tweak just a few things for radios.\n\n.custom-radio {\n .custom-control-label::before {\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-radio-indicator-border-radius;\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-image: escape-svg($custom-radio-indicator-icon-checked);\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n }\n }\n}\n\n\n// switches\n//\n// Tweak a few things for switches\n\n.custom-switch {\n padding-left: $custom-switch-width + $custom-control-gutter;\n\n .custom-control-label {\n &::before {\n left: -($custom-switch-width + $custom-control-gutter);\n width: $custom-switch-width;\n pointer-events: all;\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-switch-indicator-border-radius;\n }\n\n &::after {\n top: add(($font-size-base * $line-height-base - $custom-control-indicator-size) / 2, $custom-control-indicator-border-width * 2);\n left: add(-($custom-switch-width + $custom-control-gutter), $custom-control-indicator-border-width * 2);\n width: $custom-switch-indicator-size;\n height: $custom-switch-indicator-size;\n background-color: $custom-control-indicator-border-color;\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-switch-indicator-border-radius;\n @include transition(transform .15s ease-in-out, $custom-forms-transition);\n }\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-color: $custom-control-indicator-bg;\n transform: translateX($custom-switch-width - $custom-control-indicator-size);\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n }\n }\n}\n\n\n// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// https://primer.github.io/.\n//\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: $custom-select-height;\n padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;\n font-family: $custom-select-font-family;\n @include font-size($custom-select-font-size);\n font-weight: $custom-select-font-weight;\n line-height: $custom-select-line-height;\n color: $custom-select-color;\n vertical-align: middle;\n background: $custom-select-bg $custom-select-background;\n border: $custom-select-border-width solid $custom-select-border-color;\n @include border-radius($custom-select-border-radius, 0);\n @include box-shadow($custom-select-box-shadow);\n appearance: none;\n\n &:focus {\n border-color: $custom-select-focus-border-color;\n outline: 0;\n @if $enable-shadows {\n @include box-shadow($custom-select-box-shadow, $custom-select-focus-box-shadow);\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: $custom-select-focus-box-shadow;\n }\n\n &::-ms-value {\n // For visual consistency with other platforms/browsers,\n // suppress the default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n }\n\n &[multiple],\n &[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: $custom-select-padding-x;\n background-image: none;\n }\n\n &:disabled {\n color: $custom-select-disabled-color;\n background-color: $custom-select-disabled-bg;\n }\n\n // Hides the default caret in IE11\n &::-ms-expand {\n display: none;\n }\n\n // Remove outline from select box in FF\n &:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 $custom-select-color;\n }\n}\n\n.custom-select-sm {\n height: $custom-select-height-sm;\n padding-top: $custom-select-padding-y-sm;\n padding-bottom: $custom-select-padding-y-sm;\n padding-left: $custom-select-padding-x-sm;\n @include font-size($custom-select-font-size-sm);\n}\n\n.custom-select-lg {\n height: $custom-select-height-lg;\n padding-top: $custom-select-padding-y-lg;\n padding-bottom: $custom-select-padding-y-lg;\n padding-left: $custom-select-padding-x-lg;\n @include font-size($custom-select-font-size-lg);\n}\n\n\n// File\n//\n// Custom file input.\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: $custom-file-height;\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: $custom-file-height;\n margin: 0;\n opacity: 0;\n\n &:focus ~ .custom-file-label {\n border-color: $custom-file-focus-border-color;\n box-shadow: $custom-file-focus-box-shadow;\n }\n\n // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247\n &[disabled] ~ .custom-file-label,\n &:disabled ~ .custom-file-label {\n background-color: $custom-file-disabled-bg;\n }\n\n @each $lang, $value in $custom-file-text {\n &:lang(#{$lang}) ~ .custom-file-label::after {\n content: $value;\n }\n }\n\n ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n }\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: $custom-file-height;\n padding: $custom-file-padding-y $custom-file-padding-x;\n font-family: $custom-file-font-family;\n font-weight: $custom-file-font-weight;\n line-height: $custom-file-line-height;\n color: $custom-file-color;\n background-color: $custom-file-bg;\n border: $custom-file-border-width solid $custom-file-border-color;\n @include border-radius($custom-file-border-radius);\n @include box-shadow($custom-file-box-shadow);\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: $custom-file-height-inner;\n padding: $custom-file-padding-y $custom-file-padding-x;\n line-height: $custom-file-line-height;\n color: $custom-file-button-color;\n content: \"Browse\";\n @include gradient-bg($custom-file-button-bg);\n border-left: inherit;\n @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);\n }\n}\n\n// Range\n//\n// Style range inputs the same across browsers. Vendor-specific rules for pseudo\n// elements cannot be mixed. As such, there are no shared styles for focus or\n// active states on prefixed selectors.\n\n.custom-range {\n width: 100%;\n height: add($custom-range-thumb-height, $custom-range-thumb-focus-box-shadow-width * 2);\n padding: 0; // Need to reset padding\n background-color: transparent;\n appearance: none;\n\n &:focus {\n outline: none;\n\n // Pseudo-elements must be split across multiple rulesets to have an effect.\n // No box-shadow() mixin for focus accessibility.\n &::-webkit-slider-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n &::-moz-range-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n &::-ms-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n }\n\n &::-moz-focus-outer {\n border: 0;\n }\n\n &::-webkit-slider-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: ($custom-range-track-height - $custom-range-thumb-height) / 2; // Webkit specific\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-webkit-slider-runnable-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent; // Why?\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent;\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-moz-range-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-moz-range-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent; // Firefox specific?\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: 0; // Edge specific\n margin-right: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n margin-left: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-ms-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: transparent;\n border-color: transparent;\n border-width: $custom-range-thumb-height / 2;\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-fill-lower {\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &::-ms-fill-upper {\n margin-right: 15px; // arbitrary?\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &:disabled {\n &::-webkit-slider-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n\n &::-webkit-slider-runnable-track {\n cursor: default;\n }\n\n &::-moz-range-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n\n &::-moz-range-track {\n cursor: default;\n }\n\n &::-ms-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n }\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n @include transition($custom-forms-transition);\n}\n","// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s, `<ul>`s or `<ol>`s.\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: $nav-link-padding-y $nav-link-padding-x;\n text-decoration: if($link-decoration == none, null, none);\n\n @include hover-focus() {\n text-decoration: none;\n }\n\n // Disabled state lightens text\n &.disabled {\n color: $nav-link-disabled-color;\n pointer-events: none;\n cursor: default;\n }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\n\n .nav-item {\n margin-bottom: -$nav-tabs-border-width;\n }\n\n .nav-link {\n border: $nav-tabs-border-width solid transparent;\n @include border-top-radius($nav-tabs-border-radius);\n\n @include hover-focus() {\n border-color: $nav-tabs-link-hover-border-color;\n }\n\n &.disabled {\n color: $nav-link-disabled-color;\n background-color: transparent;\n border-color: transparent;\n }\n }\n\n .nav-link.active,\n .nav-item.show .nav-link {\n color: $nav-tabs-link-active-color;\n background-color: $nav-tabs-link-active-bg;\n border-color: $nav-tabs-link-active-border-color;\n }\n\n .dropdown-menu {\n // Make dropdown border overlap tab border\n margin-top: -$nav-tabs-border-width;\n // Remove the top rounded corners here since there is a hard edge above the menu\n @include border-top-radius(0);\n }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n .nav-link {\n @include border-radius($nav-pills-border-radius);\n }\n\n .nav-link.active,\n .show > .nav-link {\n color: $nav-pills-link-active-color;\n background-color: $nav-pills-link-active-bg;\n }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n > .nav-link,\n .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n}\n\n.nav-justified {\n > .nav-link,\n .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n","// Contents\n//\n// Navbar\n// Navbar brand\n// Navbar nav\n// Navbar text\n// Navbar divider\n// Responsive navbar\n// Navbar position\n// Navbar themes\n\n\n// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap; // allow us to do the line break for collapsing content\n align-items: center;\n justify-content: space-between; // space out brand from logo\n padding: $navbar-padding-y $navbar-padding-x;\n\n // Because flex properties aren't inherited, we need to redeclare these first\n // few properties so that content nested within behave properly.\n %container-flex-properties {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n }\n\n .container,\n .container-fluid {\n @extend %container-flex-properties;\n }\n\n @each $breakpoint, $container-max-width in $container-max-widths {\n > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {\n @extend %container-flex-properties;\n }\n }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n display: inline-block;\n padding-top: $navbar-brand-padding-y;\n padding-bottom: $navbar-brand-padding-y;\n margin-right: $navbar-padding-x;\n @include font-size($navbar-brand-font-size);\n line-height: inherit;\n white-space: nowrap;\n\n @include hover-focus() {\n text-decoration: none;\n }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n display: flex;\n flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-link {\n padding-right: 0;\n padding-left: 0;\n }\n\n .dropdown-menu {\n position: static;\n float: none;\n }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n display: inline-block;\n padding-top: $nav-link-padding-y;\n padding-bottom: $nav-link-padding-y;\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n // For always expanded or extra full navbars, ensure content aligns itself\n // properly vertically. Can be easily overridden with flex utilities.\n align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\n @include font-size($navbar-toggler-font-size);\n line-height: 1;\n background-color: transparent; // remove default button style\n border: $border-width solid transparent; // remove default button style\n @include border-radius($navbar-toggler-border-radius);\n\n @include hover-focus() {\n text-decoration: none;\n }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n %container-navbar-expand-#{$breakpoint} {\n padding-right: 0;\n padding-left: 0;\n }\n\n > .container,\n > .container-fluid {\n @extend %container-navbar-expand-#{$breakpoint};\n }\n\n @each $size, $container-max-width in $container-max-widths {\n > .container#{breakpoint-infix($size, $container-max-widths)} {\n @extend %container-navbar-expand-#{$breakpoint};\n }\n }\n }\n\n @include media-breakpoint-up($next) {\n flex-flow: row nowrap;\n justify-content: flex-start;\n\n .navbar-nav {\n flex-direction: row;\n\n .dropdown-menu {\n position: absolute;\n }\n\n .nav-link {\n padding-right: $navbar-nav-link-padding-x;\n padding-left: $navbar-nav-link-padding-x;\n }\n }\n\n // For nesting containers, have to redeclare for alignment purposes\n %container-nesting-#{$breakpoint} {\n flex-wrap: nowrap;\n }\n\n > .container,\n > .container-fluid {\n @extend %container-nesting-#{$breakpoint};\n }\n\n @each $size, $container-max-width in $container-max-widths {\n > .container#{breakpoint-infix($size, $container-max-widths)} {\n @extend %container-nesting-#{$breakpoint};\n }\n }\n\n .navbar-collapse {\n display: flex !important; // stylelint-disable-line declaration-no-important\n\n // Changes flex-bases to auto because of an IE10 bug\n flex-basis: auto;\n }\n\n .navbar-toggler {\n display: none;\n }\n }\n }\n }\n}\n\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n// Dark links against a light background\n.navbar-light {\n .navbar-brand {\n color: $navbar-light-brand-color;\n\n @include hover-focus() {\n color: $navbar-light-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-light-color;\n\n @include hover-focus() {\n color: $navbar-light-hover-color;\n }\n\n &.disabled {\n color: $navbar-light-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-light-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-light-color;\n border-color: $navbar-light-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: escape-svg($navbar-light-toggler-icon-bg);\n }\n\n .navbar-text {\n color: $navbar-light-color;\n a {\n color: $navbar-light-active-color;\n\n @include hover-focus() {\n color: $navbar-light-active-color;\n }\n }\n }\n}\n\n// White links against a dark background\n.navbar-dark {\n .navbar-brand {\n color: $navbar-dark-brand-color;\n\n @include hover-focus() {\n color: $navbar-dark-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-dark-color;\n\n @include hover-focus() {\n color: $navbar-dark-hover-color;\n }\n\n &.disabled {\n color: $navbar-dark-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-dark-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-dark-color;\n border-color: $navbar-dark-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: escape-svg($navbar-dark-toggler-icon-bg);\n }\n\n .navbar-text {\n color: $navbar-dark-color;\n a {\n color: $navbar-dark-active-color;\n\n @include hover-focus() {\n color: $navbar-dark-active-color;\n }\n }\n }\n}\n","//\n// Base styles\n//\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\n height: $card-height;\n word-wrap: break-word;\n background-color: $card-bg;\n background-clip: border-box;\n border: $card-border-width solid $card-border-color;\n @include border-radius($card-border-radius);\n\n > hr {\n margin-right: 0;\n margin-left: 0;\n }\n\n > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n\n &:first-child {\n border-top-width: 0;\n @include border-top-radius($card-inner-border-radius);\n }\n\n &:last-child {\n border-bottom-width: 0;\n @include border-bottom-radius($card-inner-border-radius);\n }\n }\n\n // Due to specificity of the above selector (`.card > .list-group`), we must\n // use a child selector here to prevent double borders.\n > .card-header + .list-group,\n > .list-group + .card-footer {\n border-top: 0;\n }\n}\n\n.card-body {\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n // as much space as possible, ensuring footers are aligned to the bottom.\n flex: 1 1 auto;\n // Workaround for the image size bug in IE\n // See: https://github.com/twbs/bootstrap/pull/28855\n min-height: 1px;\n padding: $card-spacer-x;\n color: $card-color;\n}\n\n.card-title {\n margin-bottom: $card-spacer-y;\n}\n\n.card-subtitle {\n margin-top: -$card-spacer-y / 2;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link {\n @include hover() {\n text-decoration: none;\n }\n\n + .card-link {\n margin-left: $card-spacer-x;\n }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n padding: $card-spacer-y $card-spacer-x;\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\n color: $card-cap-color;\n background-color: $card-cap-bg;\n border-bottom: $card-border-width solid $card-border-color;\n\n &:first-child {\n @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\n }\n}\n\n.card-footer {\n padding: $card-spacer-y $card-spacer-x;\n color: $card-cap-color;\n background-color: $card-cap-bg;\n border-top: $card-border-width solid $card-border-color;\n\n &:last-child {\n @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\n }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n margin-right: -$card-spacer-x / 2;\n margin-bottom: -$card-spacer-y;\n margin-left: -$card-spacer-x / 2;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -$card-spacer-x / 2;\n margin-left: -$card-spacer-x / 2;\n}\n\n// Card image\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: $card-img-overlay-padding;\n @include border-radius($card-inner-border-radius);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0; // For IE: https://github.com/twbs/bootstrap/issues/29396\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n}\n\n.card-img,\n.card-img-top {\n @include border-top-radius($card-inner-border-radius);\n}\n\n.card-img,\n.card-img-bottom {\n @include border-bottom-radius($card-inner-border-radius);\n}\n\n\n// Card deck\n\n.card-deck {\n .card {\n margin-bottom: $card-deck-margin;\n }\n\n @include media-breakpoint-up(sm) {\n display: flex;\n flex-flow: row wrap;\n margin-right: -$card-deck-margin;\n margin-left: -$card-deck-margin;\n\n .card {\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n margin-right: $card-deck-margin;\n margin-bottom: 0; // Override the default\n margin-left: $card-deck-margin;\n }\n }\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n margin-bottom: $card-group-margin;\n }\n\n @include media-breakpoint-up(sm) {\n display: flex;\n flex-flow: row wrap;\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n margin-bottom: 0;\n\n + .card {\n margin-left: 0;\n border-left: 0;\n }\n\n // Handle rounded corners\n @if $enable-rounded {\n &:not(:last-child) {\n @include border-right-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-blacklist\n border-top-right-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-blacklist\n border-bottom-right-radius: 0;\n }\n }\n\n &:not(:first-child) {\n @include border-left-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-blacklist\n border-top-left-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-blacklist\n border-bottom-left-radius: 0;\n }\n }\n }\n }\n }\n}\n\n\n//\n// Columns\n//\n\n.card-columns {\n .card {\n margin-bottom: $card-columns-margin;\n }\n\n @include media-breakpoint-up(sm) {\n column-count: $card-columns-count;\n column-gap: $card-columns-gap;\n orphans: 1;\n widows: 1;\n\n .card {\n display: inline-block; // Don't let them vertically span multiple columns\n width: 100%; // Don't let their width change\n }\n }\n}\n\n\n//\n// Accordion\n//\n\n.accordion {\n overflow-anchor: none;\n\n > .card {\n overflow: hidden;\n\n &:not(:last-of-type) {\n border-bottom: 0;\n @include border-bottom-radius(0);\n }\n\n &:not(:first-of-type) {\n @include border-top-radius(0);\n }\n\n > .card-header {\n @include border-radius(0);\n margin-bottom: -$card-border-width;\n }\n }\n}\n",".breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: $breadcrumb-padding-y $breadcrumb-padding-x;\n margin-bottom: $breadcrumb-margin-bottom;\n @include font-size($breadcrumb-font-size);\n list-style: none;\n background-color: $breadcrumb-bg;\n @include border-radius($breadcrumb-border-radius);\n}\n\n.breadcrumb-item {\n display: flex;\n\n // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n + .breadcrumb-item {\n padding-left: $breadcrumb-item-padding;\n\n &::before {\n display: inline-block; // Suppress underlining of the separator in modern browsers\n padding-right: $breadcrumb-item-padding;\n color: $breadcrumb-divider-color;\n content: escape-svg($breadcrumb-divider);\n }\n }\n\n // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built\n // without `<ul>`s. The `::before` pseudo-element generates an element\n // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.\n //\n // To trick IE into suppressing the underline, we give the pseudo-element an\n // underline and then immediately remove it.\n + .breadcrumb-item:hover::before {\n text-decoration: underline;\n }\n // stylelint-disable-next-line no-duplicate-selectors\n + .breadcrumb-item:hover::before {\n text-decoration: none;\n }\n\n &.active {\n color: $breadcrumb-active-color;\n }\n}\n",".pagination {\n display: flex;\n @include list-unstyled();\n @include border-radius();\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: $pagination-padding-y $pagination-padding-x;\n margin-left: -$pagination-border-width;\n line-height: $pagination-line-height;\n color: $pagination-color;\n text-decoration: if($link-decoration == none, null, none);\n background-color: $pagination-bg;\n border: $pagination-border-width solid $pagination-border-color;\n\n &:hover {\n z-index: 2;\n color: $pagination-hover-color;\n text-decoration: none;\n background-color: $pagination-hover-bg;\n border-color: $pagination-hover-border-color;\n }\n\n &:focus {\n z-index: 3;\n outline: $pagination-focus-outline;\n box-shadow: $pagination-focus-box-shadow;\n }\n}\n\n.page-item {\n &:first-child {\n .page-link {\n margin-left: 0;\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n\n &.active .page-link {\n z-index: 3;\n color: $pagination-active-color;\n background-color: $pagination-active-bg;\n border-color: $pagination-active-border-color;\n }\n\n &.disabled .page-link {\n color: $pagination-disabled-color;\n pointer-events: none;\n // Opinionated: remove the \"hand\" cursor set previously for .page-link\n cursor: auto;\n background-color: $pagination-disabled-bg;\n border-color: $pagination-disabled-border-color;\n }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);\n}\n\n.pagination-sm {\n @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);\n}\n","// Pagination\n\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n .page-link {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n line-height: $line-height;\n }\n\n .page-item {\n &:first-child {\n .page-link {\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n }\n}\n","// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n display: inline-block;\n padding: $badge-padding-y $badge-padding-x;\n @include font-size($badge-font-size);\n font-weight: $badge-font-weight;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n @include border-radius($badge-border-radius);\n @include transition($badge-transition);\n\n @at-root a#{&} {\n @include hover-focus() {\n text-decoration: none;\n }\n }\n\n // Empty badges collapse automatically\n &:empty {\n display: none;\n }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n// Pill badges\n//\n// Make them extra rounded with a modifier to replace v3's badges.\n\n.badge-pill {\n padding-right: $badge-pill-padding-x;\n padding-left: $badge-pill-padding-x;\n @include border-radius($badge-pill-border-radius);\n}\n\n// Colors\n//\n// Contextual variations (linked badges get darker on :hover).\n\n@each $color, $value in $theme-colors {\n .badge-#{$color} {\n @include badge-variant($value);\n }\n}\n","@mixin badge-variant($bg) {\n color: color-yiq($bg);\n background-color: $bg;\n\n @at-root a#{&} {\n @include hover-focus() {\n color: color-yiq($bg);\n background-color: darken($bg, 10%);\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: 0 0 0 $badge-focus-width rgba($bg, .5);\n }\n }\n}\n",".jumbotron {\n padding: $jumbotron-padding ($jumbotron-padding / 2);\n margin-bottom: $jumbotron-padding;\n color: $jumbotron-color;\n background-color: $jumbotron-bg;\n @include border-radius($border-radius-lg);\n\n @include media-breakpoint-up(sm) {\n padding: ($jumbotron-padding * 2) $jumbotron-padding;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n @include border-radius(0);\n}\n","//\n// Base styles\n//\n\n.alert {\n position: relative;\n padding: $alert-padding-y $alert-padding-x;\n margin-bottom: $alert-margin-bottom;\n border: $alert-border-width solid transparent;\n @include border-radius($alert-border-radius);\n}\n\n// Headings for larger alerts\n.alert-heading {\n // Specified to prevent conflicts of changing $headings-color\n color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n padding-right: $close-font-size + $alert-padding-x * 2;\n\n // Adjust close link position\n .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: $alert-padding-y $alert-padding-x;\n color: inherit;\n }\n}\n\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $color, $value in $theme-colors {\n .alert-#{$color} {\n @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\n }\n}\n","@mixin alert-variant($background, $border, $color) {\n color: $color;\n @include gradient-bg($background);\n border-color: $border;\n\n hr {\n border-top-color: darken($border, 5%);\n }\n\n .alert-link {\n color: darken($color, 10%);\n }\n}\n","// Disable animation if transitions are disabled\n@if $enable-transitions {\n @keyframes progress-bar-stripes {\n from { background-position: $progress-height 0; }\n to { background-position: 0 0; }\n }\n}\n\n.progress {\n display: flex;\n height: $progress-height;\n overflow: hidden; // force rounded corners by cropping it\n line-height: 0;\n @include font-size($progress-font-size);\n background-color: $progress-bg;\n @include border-radius($progress-border-radius);\n @include box-shadow($progress-box-shadow);\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: $progress-bar-color;\n text-align: center;\n white-space: nowrap;\n background-color: $progress-bar-bg;\n @include transition($progress-bar-transition);\n}\n\n.progress-bar-striped {\n @include gradient-striped();\n background-size: $progress-height $progress-height;\n}\n\n@if $enable-transitions {\n .progress-bar-animated {\n animation: progress-bar-stripes $progress-bar-animation-timing;\n\n @if $enable-prefers-reduced-motion-media-query {\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n }\n }\n}\n",".media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n","// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n display: flex;\n flex-direction: column;\n\n // No need to set list-style: none; since .list-group-item is block level\n padding-left: 0; // reset padding because ul and ol\n margin-bottom: 0;\n @include border-radius($list-group-border-radius);\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n width: 100%; // For `<button>`s (anchors become 100% by default though)\n color: $list-group-action-color;\n text-align: inherit; // For `<button>`s (anchors inherit)\n\n // Hover state\n @include hover-focus() {\n z-index: 1; // Place hover/focus items above their siblings for proper border styling\n color: $list-group-action-hover-color;\n text-decoration: none;\n background-color: $list-group-hover-bg;\n }\n\n &:active {\n color: $list-group-action-active-color;\n background-color: $list-group-action-active-bg;\n }\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: $list-group-item-padding-y $list-group-item-padding-x;\n color: $list-group-color;\n text-decoration: if($link-decoration == none, null, none);\n background-color: $list-group-bg;\n border: $list-group-border-width solid $list-group-border-color;\n\n &:first-child {\n @include border-top-radius(inherit);\n }\n\n &:last-child {\n @include border-bottom-radius(inherit);\n }\n\n &.disabled,\n &:disabled {\n color: $list-group-disabled-color;\n pointer-events: none;\n background-color: $list-group-disabled-bg;\n }\n\n // Include both here for `<a>`s and `<button>`s\n &.active {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: $list-group-active-color;\n background-color: $list-group-active-bg;\n border-color: $list-group-active-border-color;\n }\n\n & + & {\n border-top-width: 0;\n\n &.active {\n margin-top: -$list-group-border-width;\n border-top-width: $list-group-border-width;\n }\n }\n}\n\n\n// Horizontal\n//\n// Change the layout of list group items from vertical (default) to horizontal.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .list-group-horizontal#{$infix} {\n flex-direction: row;\n\n > .list-group-item {\n &:first-child {\n @include border-bottom-left-radius($list-group-border-radius);\n @include border-top-right-radius(0);\n }\n\n &:last-child {\n @include border-top-right-radius($list-group-border-radius);\n @include border-bottom-left-radius(0);\n }\n\n &.active {\n margin-top: 0;\n }\n\n & + .list-group-item {\n border-top-width: $list-group-border-width;\n border-left-width: 0;\n\n &.active {\n margin-left: -$list-group-border-width;\n border-left-width: $list-group-border-width;\n }\n }\n }\n }\n }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n @include border-radius(0);\n\n > .list-group-item {\n border-width: 0 0 $list-group-border-width;\n\n &:last-child {\n border-bottom-width: 0;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $color, $value in $theme-colors {\n @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));\n}\n","// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n .list-group-item-#{$state} {\n color: $color;\n background-color: $background;\n\n &.list-group-item-action {\n @include hover-focus() {\n color: $color;\n background-color: darken($background, 5%);\n }\n\n &.active {\n color: $white;\n background-color: $color;\n border-color: $color;\n }\n }\n }\n}\n",".close {\n float: right;\n @include font-size($close-font-size);\n font-weight: $close-font-weight;\n line-height: 1;\n color: $close-color;\n text-shadow: $close-text-shadow;\n opacity: .5;\n\n // Override <a>'s hover style\n @include hover() {\n color: $close-color;\n text-decoration: none;\n }\n\n &:not(:disabled):not(.disabled) {\n @include hover-focus() {\n opacity: .75;\n }\n }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n// stylelint-disable-next-line selector-no-qualifying-type\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n}\n\n// Future-proof disabling of clicks on `<a>` elements\n\n// stylelint-disable-next-line selector-no-qualifying-type\na.close.disabled {\n pointer-events: none;\n}\n",".toast {\n // Prevents from shrinking in IE11, when in a flex container\n // See https://github.com/twbs/bootstrap/issues/28341\n flex-basis: $toast-max-width;\n max-width: $toast-max-width;\n @include font-size($toast-font-size);\n color: $toast-color;\n background-color: $toast-background-color;\n background-clip: padding-box;\n border: $toast-border-width solid $toast-border-color;\n box-shadow: $toast-box-shadow;\n opacity: 0;\n @include border-radius($toast-border-radius);\n\n &:not(:last-child) {\n margin-bottom: $toast-padding-x;\n }\n\n &.showing {\n opacity: 1;\n }\n\n &.show {\n display: block;\n opacity: 1;\n }\n\n &.hide {\n display: none;\n }\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: $toast-padding-y $toast-padding-x;\n color: $toast-header-color;\n background-color: $toast-header-background-color;\n background-clip: padding-box;\n border-bottom: $toast-border-width solid $toast-header-border-color;\n @include border-top-radius(subtract($toast-border-radius, $toast-border-width));\n}\n\n.toast-body {\n padding: $toast-padding-x; // apply to both vertical and horizontal\n}\n","// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and stuff\n\n\n.modal-open {\n // Kill the scroll on the body\n overflow: hidden;\n\n .modal {\n overflow-x: hidden;\n overflow-y: auto;\n }\n}\n\n// Container that the modal scrolls within\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n // See also https://github.com/twbs/bootstrap/issues/17695\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: $modal-dialog-margin;\n // allow clicks to pass through for custom click handling to close modal\n pointer-events: none;\n\n // When fading in the modal, animate it to slide down\n .modal.fade & {\n @include transition($modal-transition);\n transform: $modal-fade-transform;\n }\n .modal.show & {\n transform: $modal-show-transform;\n }\n\n // When trying to close, animate focus to scale\n .modal.modal-static & {\n transform: $modal-scale-transform;\n }\n}\n\n.modal-dialog-scrollable {\n display: flex; // IE10/11\n max-height: subtract(100%, $modal-dialog-margin * 2);\n\n .modal-content {\n max-height: subtract(100vh, $modal-dialog-margin * 2); // IE10/11\n overflow: hidden;\n }\n\n .modal-header,\n .modal-footer {\n flex-shrink: 0;\n }\n\n .modal-body {\n overflow-y: auto;\n }\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: subtract(100%, $modal-dialog-margin * 2);\n\n // Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)\n &::before {\n display: block; // IE10\n height: subtract(100vh, $modal-dialog-margin * 2);\n height: min-content; // Reset height to 0 except on IE\n content: \"\";\n }\n\n // Ensure `.modal-body` shows scrollbar (IE10/11)\n &.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n\n .modal-content {\n max-height: none;\n }\n\n &::before {\n content: none;\n }\n }\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n // counteract the pointer-events: none; in the .modal-dialog\n color: $modal-content-color;\n pointer-events: auto;\n background-color: $modal-content-bg;\n background-clip: padding-box;\n border: $modal-content-border-width solid $modal-content-border-color;\n @include border-radius($modal-content-border-radius);\n @include box-shadow($modal-content-box-shadow-xs);\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal-backdrop;\n width: 100vw;\n height: 100vh;\n background-color: $modal-backdrop-bg;\n\n // Fade for backdrop\n &.fade { opacity: 0; }\n &.show { opacity: $modal-backdrop-opacity; }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n display: flex;\n align-items: flex-start; // so the close btn always stays on the upper right corner\n justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n padding: $modal-header-padding;\n border-bottom: $modal-header-border-width solid $modal-header-border-color;\n @include border-top-radius($modal-content-inner-border-radius);\n\n .close {\n padding: $modal-header-padding;\n // auto on the left force icon to the right even when there is no .modal-title\n margin: (-$modal-header-padding-y) (-$modal-header-padding-x) (-$modal-header-padding-y) auto;\n }\n}\n\n// Title text within header\n.modal-title {\n margin-bottom: 0;\n line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n // Enable `flex-grow: 1` so that the body take up as much space as possible\n // when there should be a fixed height on `.modal-dialog`.\n flex: 1 1 auto;\n padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center; // vertically center\n justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n padding: $modal-inner-padding - $modal-footer-margin-between / 2;\n border-top: $modal-footer-border-width solid $modal-footer-border-color;\n @include border-bottom-radius($modal-content-inner-border-radius);\n\n // Place margin between footer elements\n // This solution is far from ideal because of the universal selector usage,\n // but is needed to fix https://github.com/twbs/bootstrap/issues/24800\n > * {\n margin: $modal-footer-margin-between / 2;\n }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n max-width: $modal-md;\n margin: $modal-dialog-margin-y-sm-up auto;\n }\n\n .modal-dialog-scrollable {\n max-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\n\n .modal-content {\n max-height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);\n }\n }\n\n .modal-dialog-centered {\n min-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\n\n &::before {\n height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);\n height: min-content;\n }\n }\n\n .modal-content {\n @include box-shadow($modal-content-box-shadow-sm-up);\n }\n\n .modal-sm { max-width: $modal-sm; }\n}\n\n@include media-breakpoint-up(lg) {\n .modal-lg,\n .modal-xl {\n max-width: $modal-lg;\n }\n}\n\n@include media-breakpoint-up(xl) {\n .modal-xl { max-width: $modal-xl; }\n}\n","// Base class\n.tooltip {\n position: absolute;\n z-index: $zindex-tooltip;\n display: block;\n margin: $tooltip-margin;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($tooltip-font-size);\n // Allow breaking very long words so they don't overflow the tooltip's bounds\n word-wrap: break-word;\n opacity: 0;\n\n &.show { opacity: $tooltip-opacity; }\n\n .arrow {\n position: absolute;\n display: block;\n width: $tooltip-arrow-width;\n height: $tooltip-arrow-height;\n\n &::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-tooltip-top {\n padding: $tooltip-arrow-height 0;\n\n .arrow {\n bottom: 0;\n\n &::before {\n top: 0;\n border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-top-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-right {\n padding: 0 $tooltip-arrow-height;\n\n .arrow {\n left: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n right: 0;\n border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-right-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-bottom {\n padding: $tooltip-arrow-height 0;\n\n .arrow {\n top: 0;\n\n &::before {\n bottom: 0;\n border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-bottom-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-left {\n padding: 0 $tooltip-arrow-height;\n\n .arrow {\n right: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n left: 0;\n border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-left-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-tooltip-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-tooltip-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-tooltip-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-tooltip-left;\n }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: $tooltip-max-width;\n padding: $tooltip-padding-y $tooltip-padding-x;\n color: $tooltip-color;\n text-align: center;\n background-color: $tooltip-bg;\n @include border-radius($tooltip-border-radius);\n}\n","@mixin reset-text() {\n font-family: $font-family-base;\n // We deliberately do NOT reset font-size or word-wrap.\n font-style: normal;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n}\n",".popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: $zindex-popover;\n display: block;\n max-width: $popover-max-width;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($popover-font-size);\n // Allow breaking very long words so they don't overflow the popover's bounds\n word-wrap: break-word;\n background-color: $popover-bg;\n background-clip: padding-box;\n border: $popover-border-width solid $popover-border-color;\n @include border-radius($popover-border-radius);\n @include box-shadow($popover-box-shadow);\n\n .arrow {\n position: absolute;\n display: block;\n width: $popover-arrow-width;\n height: $popover-arrow-height;\n margin: 0 $popover-border-radius;\n\n &::before,\n &::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-popover-top {\n margin-bottom: $popover-arrow-height;\n\n > .arrow {\n bottom: subtract(-$popover-arrow-height, $popover-border-width);\n\n &::before {\n bottom: 0;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-outer-color;\n }\n\n &::after {\n bottom: $popover-border-width;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-right {\n margin-left: $popover-arrow-height;\n\n > .arrow {\n left: subtract(-$popover-arrow-height, $popover-border-width);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners\n\n &::before {\n left: 0;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-outer-color;\n }\n\n &::after {\n left: $popover-border-width;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-bottom {\n margin-top: $popover-arrow-height;\n\n > .arrow {\n top: subtract(-$popover-arrow-height, $popover-border-width);\n\n &::before {\n top: 0;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-outer-color;\n }\n\n &::after {\n top: $popover-border-width;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-color;\n }\n }\n\n // This will remove the popover-header's border just below the arrow\n .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: $popover-arrow-width;\n margin-left: -$popover-arrow-width / 2;\n content: \"\";\n border-bottom: $popover-border-width solid $popover-header-bg;\n }\n}\n\n.bs-popover-left {\n margin-right: $popover-arrow-height;\n\n > .arrow {\n right: subtract(-$popover-arrow-height, $popover-border-width);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners\n\n &::before {\n right: 0;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-outer-color;\n }\n\n &::after {\n right: $popover-border-width;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-popover-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-popover-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-popover-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-popover-left;\n }\n}\n\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n padding: $popover-header-padding-y $popover-header-padding-x;\n margin-bottom: 0; // Reset the default from Reboot\n @include font-size($font-size-base);\n color: $popover-header-color;\n background-color: $popover-header-bg;\n border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);\n @include border-top-radius($popover-inner-border-radius);\n\n &:empty {\n display: none;\n }\n}\n\n.popover-body {\n padding: $popover-body-padding-y $popover-body-padding-x;\n color: $popover-body-color;\n}\n","// Notes on the classes:\n//\n// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)\n// even when their scroll action started on a carousel, but for compatibility (with Firefox)\n// we're preventing all actions instead\n// 2. The .carousel-item-left and .carousel-item-right is used to indicate where\n// the active slide is heading.\n// 3. .active.carousel-item is the current slide.\n// 4. .active.carousel-item-left and .active.carousel-item-right is the current\n// slide in its in-transition state. Only one of these occurs at a time.\n// 5. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right\n// is the upcoming slide in transition.\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n @include clearfix();\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n @include transition($carousel-transition);\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n\n//\n// Alternate transitions\n//\n\n.carousel-fade {\n .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n }\n\n .carousel-item.active,\n .carousel-item-next.carousel-item-left,\n .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n }\n\n .active.carousel-item-left,\n .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n @include transition(opacity 0s $carousel-transition-duration);\n }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n // Use flex for alignment (1-3)\n display: flex; // 1. allow flex styles\n align-items: center; // 2. vertically center contents\n justify-content: center; // 3. horizontally center contents\n width: $carousel-control-width;\n color: $carousel-control-color;\n text-align: center;\n opacity: $carousel-control-opacity;\n @include transition($carousel-control-transition);\n\n // Hover/focus state\n @include hover-focus() {\n color: $carousel-control-color;\n text-decoration: none;\n outline: 0;\n opacity: $carousel-control-hover-opacity;\n }\n}\n.carousel-control-prev {\n left: 0;\n @if $enable-gradients {\n background-image: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));\n }\n}\n.carousel-control-next {\n right: 0;\n @if $enable-gradients {\n background-image: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));\n }\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: $carousel-control-icon-width;\n height: $carousel-control-icon-width;\n background: no-repeat 50% / 100% 100%;\n}\n.carousel-control-prev-icon {\n background-image: escape-svg($carousel-control-prev-icon-bg);\n}\n.carousel-control-next-icon {\n background-image: escape-svg($carousel-control-next-icon-bg);\n}\n\n\n// Optional indicator pips\n//\n// Add an ordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0; // override <ol> default\n // Use the .carousel-control's width as margin so we don't overlay those\n margin-right: $carousel-control-width;\n margin-left: $carousel-control-width;\n list-style: none;\n\n li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: $carousel-indicator-width;\n height: $carousel-indicator-height;\n margin-right: $carousel-indicator-spacer;\n margin-left: $carousel-indicator-spacer;\n text-indent: -999px;\n cursor: pointer;\n background-color: $carousel-indicator-active-bg;\n background-clip: padding-box;\n // Use transparent borders to increase the hit area by 10px on top and bottom.\n border-top: $carousel-indicator-hit-area-height solid transparent;\n border-bottom: $carousel-indicator-hit-area-height solid transparent;\n opacity: .5;\n @include transition($carousel-indicator-transition);\n }\n\n .active {\n opacity: 1;\n }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n position: absolute;\n right: (100% - $carousel-caption-width) / 2;\n bottom: 20px;\n left: (100% - $carousel-caption-width) / 2;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: $carousel-caption-color;\n text-align: center;\n}\n","@mixin clearfix() {\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n}\n","//\n// Rotating border\n//\n\n@keyframes spinner-border {\n to { transform: rotate(360deg); }\n}\n\n.spinner-border {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n border: $spinner-border-width solid currentColor;\n border-right-color: transparent;\n // stylelint-disable-next-line property-blacklist\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n border-width: $spinner-border-width-sm;\n}\n\n//\n// Growing circle\n//\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n background-color: currentColor;\n // stylelint-disable-next-line property-blacklist\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n}\n","// stylelint-disable declaration-no-important\n\n.align-baseline { vertical-align: baseline !important; } // Browser default\n.align-top { vertical-align: top !important; }\n.align-middle { vertical-align: middle !important; }\n.align-bottom { vertical-align: bottom !important; }\n.align-text-bottom { vertical-align: text-bottom !important; }\n.align-text-top { vertical-align: text-top !important; }\n","// stylelint-disable declaration-no-important\n\n// Contextual backgrounds\n\n@mixin bg-variant($parent, $color, $ignore-warning: false) {\n #{$parent} {\n background-color: $color !important;\n }\n a#{$parent},\n button#{$parent} {\n @include hover-focus() {\n background-color: darken($color, 10%) !important;\n }\n }\n @include deprecate(\"The `bg-variant` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n\n@mixin bg-gradient-variant($parent, $color, $ignore-warning: false) {\n #{$parent} {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\n }\n @include deprecate(\"The `bg-gradient-variant` mixin\", \"v4.5.0\", \"v5\", $ignore-warning);\n}\n","// stylelint-disable declaration-no-important\n\n@each $color, $value in $theme-colors {\n @include bg-variant(\".bg-#{$color}\", $value, true);\n}\n\n@if $enable-gradients {\n @each $color, $value in $theme-colors {\n @include bg-gradient-variant(\".bg-gradient-#{$color}\", $value, true);\n }\n}\n\n.bg-white {\n background-color: $white !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n","// stylelint-disable property-blacklist, declaration-no-important\n\n//\n// Border\n//\n\n.border { border: $border-width solid $border-color !important; }\n.border-top { border-top: $border-width solid $border-color !important; }\n.border-right { border-right: $border-width solid $border-color !important; }\n.border-bottom { border-bottom: $border-width solid $border-color !important; }\n.border-left { border-left: $border-width solid $border-color !important; }\n\n.border-0 { border: 0 !important; }\n.border-top-0 { border-top: 0 !important; }\n.border-right-0 { border-right: 0 !important; }\n.border-bottom-0 { border-bottom: 0 !important; }\n.border-left-0 { border-left: 0 !important; }\n\n@each $color, $value in $theme-colors {\n .border-#{$color} {\n border-color: $value !important;\n }\n}\n\n.border-white {\n border-color: $white !important;\n}\n\n//\n// Border-radius\n//\n\n.rounded-sm {\n border-radius: $border-radius-sm !important;\n}\n\n.rounded {\n border-radius: $border-radius !important;\n}\n\n.rounded-top {\n border-top-left-radius: $border-radius !important;\n border-top-right-radius: $border-radius !important;\n}\n\n.rounded-right {\n border-top-right-radius: $border-radius !important;\n border-bottom-right-radius: $border-radius !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-left {\n border-top-left-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-lg {\n border-radius: $border-radius-lg !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: $rounded-pill !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n\n &::before {\n display: block;\n content: \"\";\n }\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n}\n\n@each $embed-responsive-aspect-ratio in $embed-responsive-aspect-ratios {\n $embed-responsive-aspect-ratio-x: nth($embed-responsive-aspect-ratio, 1);\n $embed-responsive-aspect-ratio-y: nth($embed-responsive-aspect-ratio, 2);\n\n .embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} {\n &::before {\n padding-top: percentage($embed-responsive-aspect-ratio-y / $embed-responsive-aspect-ratio-x);\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .float#{$infix}-left { float: left !important; }\n .float#{$infix}-right { float: right !important; }\n .float#{$infix}-none { float: none !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $value in $user-selects {\n .user-select-#{$value} { user-select: $value !important; }\n}\n","// stylelint-disable declaration-no-important\n\n@each $value in $overflows {\n .overflow-#{$value} { overflow: $value !important; }\n}\n","// stylelint-disable declaration-no-important\n\n// Common values\n@each $position in $positions {\n .position-#{$position} { position: $position !important; }\n}\n\n// Shorthand\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.sticky-top {\n @supports (position: sticky) {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n}\n","//\n// Screenreaders\n//\n\n.sr-only {\n @include sr-only();\n}\n\n.sr-only-focusable {\n @include sr-only-focusable();\n}\n","// Only display content to screen readers\n//\n// See: https://a11yproject.com/posts/how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only() {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px; // Fix for https://github.com/twbs/bootstrap/issues/25686\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable() {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n }\n}\n","// stylelint-disable declaration-no-important\n\n.shadow-sm { box-shadow: $box-shadow-sm !important; }\n.shadow { box-shadow: $box-shadow !important; }\n.shadow-lg { box-shadow: $box-shadow-lg !important; }\n.shadow-none { box-shadow: none !important; }\n","// stylelint-disable declaration-no-important\n\n// Width and height\n\n@each $prop, $abbrev in (width: w, height: h) {\n @each $size, $length in $sizes {\n .#{$abbrev}-#{$size} { #{$prop}: $length !important; }\n }\n}\n\n.mw-100 { max-width: 100% !important; }\n.mh-100 { max-height: 100% !important; }\n\n// Viewport additional helpers\n\n.min-vw-100 { min-width: 100vw !important; }\n.min-vh-100 { min-height: 100vh !important; }\n\n.vw-100 { width: 100vw !important; }\n.vh-100 { height: 100vh !important; }\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n","//\n// Stretched link\n//\n\n.stretched-link {\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n // Just in case `pointer-events: none` is set on a parent\n pointer-events: auto;\n content: \"\";\n // IE10 bugfix, see https://stackoverflow.com/questions/16947967/ie10-hover-pseudo-class-doesnt-work-without-background-color\n background-color: rgba(0, 0, 0, 0);\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Text\n//\n\n.text-monospace { font-family: $font-family-monospace !important; }\n\n// Alignment\n\n.text-justify { text-align: justify !important; }\n.text-wrap { white-space: normal !important; }\n.text-nowrap { white-space: nowrap !important; }\n.text-truncate { @include text-truncate(); }\n\n// Responsive alignment\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .text#{$infix}-left { text-align: left !important; }\n .text#{$infix}-right { text-align: right !important; }\n .text#{$infix}-center { text-align: center !important; }\n }\n}\n\n// Transformation\n\n.text-lowercase { text-transform: lowercase !important; }\n.text-uppercase { text-transform: uppercase !important; }\n.text-capitalize { text-transform: capitalize !important; }\n\n// Weight and italics\n\n.font-weight-light { font-weight: $font-weight-light !important; }\n.font-weight-lighter { font-weight: $font-weight-lighter !important; }\n.font-weight-normal { font-weight: $font-weight-normal !important; }\n.font-weight-bold { font-weight: $font-weight-bold !important; }\n.font-weight-bolder { font-weight: $font-weight-bolder !important; }\n.font-italic { font-style: italic !important; }\n\n// Contextual colors\n\n.text-white { color: $white !important; }\n\n@each $color, $value in $theme-colors {\n @include text-emphasis-variant(\".text-#{$color}\", $value, true);\n}\n\n.text-body { color: $body-color !important; }\n.text-muted { color: $text-muted !important; }\n\n.text-black-50 { color: rgba($black, .5) !important; }\n.text-white-50 { color: rgba($white, .5) !important; }\n\n// Misc\n\n.text-hide {\n @include text-hide($ignore-warning: true);\n}\n\n.text-decoration-none { text-decoration: none !important; }\n\n.text-break {\n word-break: break-word !important; // IE & < Edge 18\n overflow-wrap: break-word !important;\n}\n\n// Reset\n\n.text-reset { color: inherit !important; }\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","// stylelint-disable declaration-no-important\n\n// Typography\n\n@mixin text-emphasis-variant($parent, $color, $ignore-warning: false) {\n #{$parent} {\n color: $color !important;\n }\n @if $emphasized-link-hover-darken-percentage != 0 {\n a#{$parent} {\n @include hover-focus() {\n color: darken($color, $emphasized-link-hover-darken-percentage) !important;\n }\n }\n }\n @include deprecate(\"`text-emphasis-variant()`\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n","// CSS image replacement\n@mixin text-hide($ignore-warning: false) {\n // stylelint-disable-next-line font-family-no-missing-generic-family-keyword\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n\n @include deprecate(\"`text-hide()`\", \"v4.1.0\", \"v5\", $ignore-warning);\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Visibility utilities\n//\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n// Source: https://github.com/h5bp/main.css/blob/master/src/_print.css\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request:\n// https://www.phpied.com/delay-loading-your-print-css/\n// ==========================================================================\n\n@if $enable-print-styles {\n @media print {\n *,\n *::before,\n *::after {\n // Bootstrap specific; comment out `color` and `background`\n //color: $black !important; // Black prints faster\n text-shadow: none !important;\n //background: transparent !important;\n box-shadow: none !important;\n }\n\n a {\n &:not(.btn) {\n text-decoration: underline;\n }\n }\n\n // Bootstrap specific; comment the following selector out\n //a[href]::after {\n // content: \" (\" attr(href) \")\";\n //}\n\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n\n // Bootstrap specific; comment the following selector out\n //\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n //\n\n //a[href^=\"#\"]::after,\n //a[href^=\"javascript:\"]::after {\n // content: \"\";\n //}\n\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px\n page-break-inside: avoid;\n }\n\n //\n // Printing Tables:\n // https://web.archive.org/web/20180815150934/http://css-discuss.incutio.com/wiki/Printing_Tables\n //\n\n thead {\n display: table-header-group;\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Specify a size and min-width to make printing closer across browsers.\n // We don't set margin here because it breaks `size` in Chrome. We also\n // don't use `!important` on `size` as it breaks in Chrome.\n @page {\n size: $print-page-size;\n }\n body {\n min-width: $print-body-min-width !important;\n }\n .container {\n min-width: $print-body-min-width !important;\n }\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .badge {\n border: $border-width solid $black;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: $white !important;\n }\n }\n\n .table-bordered {\n th,\n td {\n border: 1px solid $gray-300 !important;\n }\n }\n\n .table-dark {\n color: inherit;\n\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $table-border-color;\n }\n }\n\n .table .thead-dark th {\n color: inherit;\n border-color: $table-border-color;\n }\n\n // Bootstrap specific changes end\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../scss/bootstrap.scss","bootstrap.css","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_functions.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_interactions.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"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FnH1B;;AAEA;EEyHE,wBAAwB;AFvH1B;;AE+HA;EACE,aAAa;EACb,0BAA0B;AF5H5B;;AEmIA;EACE,qBAAqB;AFhIvB;;AEmIA;EACE,kBAAkB;EAClB,eAAe;AFhIjB;;AEmIA;EACE,aAAa;AFhIf;;AAEA;EEoIE,wBAAwB;AFlI1B;;AM1VA;;EAEE,qBHqSuC;EGnSvC,gBHqS+B;EGpS/B,gBHqS+B;AHuDjC;;AMxVA;EFgHM,iBAtCY;AJkRlB;;AM3VA;EF+GM,eAtCY;AJsRlB;;AM9VA;EF8GM,kBAtCY;AJ0RlB;;AMjWA;EF6GM,iBAtCY;AJ8RlB;;AMpWA;EF4GM,kBAtCY;AJkSlB;;AMvWA;EF2GM,eAtCY;AJsSlB;;AMzWA;EFyGM,kBAtCY;EEjEhB,gBHuS+B;AHqEjC;;AMxWA;EFmGM,eAtCY;EE3DhB,gBH0R+B;EGzR/B,gBHiR+B;AH0FjC;;AMzWA;EF8FM,iBAtCY;EEtDhB,gBHsR+B;EGrR/B,gBH4Q+B;AHgGjC;;AM1WA;EFyFM,iBAtCY;EEjDhB,gBHkR+B;EGjR/B,gBHuQ+B;AHsGjC;;AM3WA;EFoFM,iBAtCY;EE5ChB,gBH8Q+B;EG7Q/B,gBHkQ+B;AH4GjC;;AEjVA;EIpBE,gBHgFW;EG/EX,mBH+EW;EG9EX,SAAS;EACT,wCHzCa;AHkZf;;AMjWA;;EFMI,cAAW;EEHb,gBH0N+B;AH0IjC;;AMjWA;;EAEE,cHkQgC;EGjQhC,yBH0QmC;AH0FrC;;AM5VA;EC/EE,eAAe;EACf,gBAAgB;AP+alB;;AM5VA;ECpFE,eAAe;EACf,gBAAgB;APoblB;;AM9VA;EACE,qBAAqB;ANiWvB;;AMlWA;EAII,oBHoP+B;AH8GnC;;AMxVA;EFjCI,cAAW;EEmCb,yBAAyB;AN2V3B;;AMvVA;EACE,mBHuBW;ECRP,kBAtCY;AJkXlB;;AMvVA;EACE,cAAc;EF7CZ,cAAW;EE+Cb,cH1GgB;AHoclB;;AM7VA;EAMI,qBAAqB;AN2VzB;;AQ9cA;ECIE,eAAe;EAGf,YAAY;AT4cd;;AQ7cA;EACE,gBL+/BwC;EK9/BxC,sBLRa;EKSb,yBLNgB;EOQd,sBP6NgC;EMpOlC,eAAe;EAGf,YAAY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EahIX,cbSgB;AHy7ClB;;AgBr8CA;;EAQI,gBbkVgC;EajVhC,mBAAmB;EACnB,6BbJc;AHs8ClB;;AgB58CA;EAcI,sBAAsB;EACtB,gCbTc;AH28ClB;;AgBj9CA;EAmBI,6Bbbc;AH+8ClB;;AgBz7CA;;EAGI,eb4T+B;AH+nCnC;;AgBl7CA;EACE,yBbnCgB;AHw9ClB;;AgBt7CA;;EAKI,yBbvCc;AH69ClB;;AgB37CA;;EAWM,wBAA4C;AhBq7ClD;;AgBh7CA;;;;EAKI,SAAS;AhBk7Cb;;AgB16CA;EAEI,qCb1DW;AHs+Cf;;AK3+CE;EW2EI,cbvEY;EawEZ,sCbvES;AH2+Cf;;AiBv/CE;;;EAII,yBCgG4D;AlBy5ClE;;AiB7/CE;;;;EAYM,qBCwF0D;AlBg6ClE;;AK7/CE;EYiBM,yBAJsC;AjBo/C9C;;AiBr/CE;;EASQ,yBARoC;AjBy/C9C;;AiB7gDE;;;EAII,yBCgG4D;AlB+6ClE;;AiBnhDE;;;;EAYM,qBCwF0D;AlBs7ClE;;AKnhDE;EYiBM,yBAJsC;AjB0gD9C;;AiB3gDE;;EASQ,yBARoC;AjB+gD9C;;AiBniDE;;;EAII,yBCgG4D;AlBq8ClE;;AiBziDE;;;;EAYM,qBCwF0D;AlB48ClE;;AKziDE;EYiBM,yBAJsC;AjBgiD9C;;AiBjiDE;;EASQ,yBARoC;AjBqiD9C;;AiBzjDE;;;EAII,yBCgG4D;AlB29ClE;;AiB/jDE;;;;EAYM,qBCwF0D;AlBk+ClE;;AK/jDE;EYiBM,yBAJsC;AjBsjD9C;;AiBvjDE;;EASQ,yBARoC;AjB2jD9C;;AiB/kDE;;;EAII,yBCgG4D;AlBi/ClE;;AiBrlDE;;;;EAYM,qBCwF0D;AlBw/ClE;;AKrlDE;EYiBM,yBAJsC;AjB4kD9C;;AiB7kDE;;EASQ,yBARoC;AjBilD9C;;AiBrmDE;;;EAII,yBCgG4D;AlBugDlE;;AiB3mDE;;;;EAYM,qBCwF0D;AlB8gDlE;;AK3mDE;EYiBM,yBAJsC;AjBkmD9C;;AiBnmDE;;EASQ,yBARoC;AjBumD9C;;AiB3nDE;;;EAII,yBCgG4D;AlB6hDlE;;AiBjoDE;;;;EAYM,qBCwF0D;AlBoiDlE;;AKjoDE;EYiBM,yBAJsC;AjBwnD9C;;AiBznDE;;EASQ,yBARoC;AjB6nD9C;;AiBjpDE;;;EAII,yBCgG4D;AlBmjDlE;;AiBvpDE;;;;EAYM,qBCwF0D;AlB0jDlE;;AKvpDE;EYiBM,yBAJsC;AjB8oD9C;;AiB/oDE;;EASQ,yBARoC;AjBmpD9C;;AiBvqDE;;;EAII,sCdQS;AHiqDf;;AKtqDE;EYiBM,sCAJsC;AjB6pD9C;;AiB9pDE;;EASQ,sCARoC;AjBkqD9C;;AgB5kDA;EAGM,Wb3GS;Ea4GT,yBbpGY;EaqGZ,qBbgQqD;AH60C3D;;AgBllDA;EAWM,cb5GY;Ea6GZ,yBblHY;EamHZ,qBblHY;AH6rDlB;;AgBtkDA;EACE,Wb3Ha;Ea4Hb,yBbpHgB;AH6rDlB;;AgB3kDA;;;EAOI,qBb4OuD;AH81C3D;;AgBjlDA;EAWI,SAAS;AhB0kDb;;AgBrlDA;EAgBM,2Cb1IS;AHmtDf;;AK9sDE;EW4IM,WbjJO;EakJP,4CblJO;AHwtDf;;ActpDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBwjDvC;EgB7jDG;IASK,SAAS;EhBujDjB;AACF;;AclqDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBokDvC;EgBzkDG;IASK,SAAS;EhBmkDjB;AACF;;Ac9qDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBglDvC;EgBrlDG;IASK,SAAS;EhB+kDjB;AACF;;Ac1rDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhB4lDvC;EgBjmDG;IASK,SAAS;EhB2lDjB;AACF;;AgB1mDA;EAOQ,cAAc;EACd,WAAW;EACX,gBAAgB;EAChB,iCAAiC;AhBumDzC;;AgBjnDA;EAcU,SAAS;AhBumDnB;;AmBpxDA;EACE,cAAc;EACd,WAAW;EACX,mCDiH8D;EChH9D,yBhByXkC;ECpQ9B,eAtCY;Ee5EhB,gBhBkR+B;EgBjR/B,gBhBsR+B;EgBrR/B,chBDgB;EgBEhB,sBhBTa;EgBUb,4BAA4B;EAC5B,yBhBPgB;EOOd,sBP6NgC;EiB/N9B,wEjBue4F;AHmzClG;;AoBtxDM;EDdN;ICeQ,gBAAgB;EpB0xDtB;AACF;;AmB1yDA;EAsBI,6BAA6B;EAC7B,SAAS;AnBwxDb;;AmB/yDA;EA4BI,kBAAkB;EAClB,0BhBrBc;AH4yDlB;;AqB7yDE;EACE,clBAc;EkBCd,sBlBRW;EkBSX,qBlBqdsE;EkBpdtE,UAAU;EAKR,gDlBaW;AH+xDjB;;AmB5zDA;EAqCI,chB9Bc;EgBgCd,UAAU;AnB0xDd;;AmBj0DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnB0xDd;;AmBj0DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnB0xDd;;AmBj0DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnB0xDd;;AmBj0DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnB0xDd;;AmBj0DA;EAiDI,yBhB9Cc;EgBgDd,UAAU;AnBmxDd;;AmB/wDA;;;;EAKI,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;AnBixDpB;;AmB7wDA;EAOI,chB/Dc;EgBgEd,sBhBvEW;AHi1Df;;AmBrwDA;;EAEE,cAAc;EACd,WAAW;AnBwwDb;;AmB9vDA;EACE,iCDyB8D;ECxB9D,oCDwB8D;ECvB9D,gBAAgB;Ef3Bd,kBAAW;Ee6Bb,gBhB+L+B;AHkkDjC;;AmB9vDA;EACE,+BDiB8D;EChB9D,kCDgB8D;EdK1D,kBAtCY;EemBhB,gBhB6H+B;AHooDjC;;AmB9vDA;EACE,gCDU8D;ECT9D,mCDS8D;EdK1D,mBAtCY;Ee0BhB,gBhBuH+B;AH0oDjC;;AmBxvDA;EACE,cAAc;EACd,WAAW;EACX,mBAA2B;EAC3B,gBAAgB;EfDZ,eAtCY;EeyChB,gBhBkK+B;EgBjK/B,chBnHgB;EgBoHhB,6BAA6B;EAC7B,yBAAyB;EACzB,mBAAmC;AnB2vDrC;;AmBrwDA;EAcI,gBAAgB;EAChB,eAAe;AnB2vDnB;;AmB/uDA;EACE,kCD9B8D;EC+B9D,uBhBoPiC;EC9Q7B,mBAtCY;EekEhB,gBhB+E+B;EOxN7B,qBP+N+B;AH6pDnC;;AmB/uDA;EACE,gCDtC8D;ECuC9D,oBhBiPgC;ECnR5B,kBAtCY;Ee0EhB,gBhBsE+B;EOvN7B,qBP8N+B;AHsqDnC;;AmB9uDA;EAGI,YAAY;AnB+uDhB;;AmB3uDA;EACE,YAAY;AnB8uDd;;AmBtuDA;EACE,mBhB0U0C;AH+5C5C;;AmBtuDA;EACE,cAAc;EACd,mBhB2T4C;AH86C9C;;AmBjuDA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,kBAA0C;EAC1C,iBAAyC;AnBouD3C;;AmBxuDA;;EAQI,kBAA0C;EAC1C,iBAAyC;AnBquD7C;;AmB5tDA;EACE,kBAAkB;EAClB,cAAc;EACd,qBhBgS6C;AH+7C/C;;AmB5tDA;EACE,kBAAkB;EAClB,kBhB4R2C;EgB3R3C,qBhB0R6C;AHq8C/C;;AmBluDA;;EAQI,chBzNc;AHw7DlB;;AmB3tDA;EACE,gBAAgB;AnB8tDlB;;AmB3tDA;EACE,2BAAoB;EAApB,oBAAoB;EACpB,sBAAmB;EAAnB,mBAAmB;EACnB,eAAe;EACf,qBhB6Q4C;AHi9C9C;;AmBluDA;EAQI,gBAAgB;EAChB,aAAa;EACb,uBhBwQ4C;EgBvQ5C,cAAc;AnB8tDlB;;AqB36DE;EACE,aAAa;EACb,WAAW;EACX,mBlB0c0C;ECjb1C,cAAW;EiBvBX,clBPa;AHq7DjB;;AqB36DE;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBgyBqC;EkB/xBrC,iBAAiB;EjBmEf,mBAtCY;EiB3Bd,gBlBsO6B;EkBrO7B,WlBxDW;EkByDX,wClBtBa;EOxBb,sBP6NgC;AHgwDpC;;AqB/8DI;;;;EAuCE,cAAc;ArB+6DpB;;AqBt9DI;EA6CE,qBlBnCW;EkBsCT,oCH0CwD;EGzCxD,iRHpB0E;EGqB1E,4BAA4B;EAC5B,2DAA6D;EAC7D,gEHsCwD;AlBq4DhE;;AqB/9DI;EAwDI,qBlB9CS;EkB+CT,gDlB/CS;AH09DjB;;AqBp+DI;EAkEI,oCHwBwD;EGvBxD,kFHuBwD;AlB+4DhE;;AqBz+DI;EA0EE,qBlBhEW;EkBmET,uCHawD;EGZxD,ujBAA8J;ArBi6DtK;;AqB/+DI;EAkFI,qBlBxES;EkByET,gDlBzES;AH0+DjB;;AqBp/DI;EA2FI,clBjFS;AH8+DjB;;AqBx/DI;;;EAgGI,cAAc;ArB85DtB;;AqB9/DI;EAwGI,clB9FS;AHw/DjB;;AqBlgEI;EA2GM,qBlBjGO;AH4/DjB;;AqBtgEI;EAiHM,qBAAkC;EC3IxC,yBD4I+C;ArBy5DnD;;AqB3gEI;EAwHM,gDlB9GO;AHqgEjB;;AqB/gEI;EA4HM,qBlBlHO;AHygEjB;;AqBnhEI;EAsII,qBlB5HS;AH6gEjB;;AqBvhEI;EA2IM,qBlBjIO;EkBkIP,gDlBlIO;AHkhEjB;;AqBhhEE;EACE,aAAa;EACb,WAAW;EACX,mBlB0c0C;ECjb1C,cAAW;EiBvBX,clBVa;AH6hEjB;;AqBhhEE;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBgyBqC;EkB/xBrC,iBAAiB;EjBmEf,mBAtCY;EiB3Bd,gBlBsO6B;EkBrO7B,WlBxDW;EkByDX,wClBzBa;EOrBb,sBP6NgC;AHq2DpC;;AqBpjEI;;;;EAuCE,cAAc;ArBohEpB;;AqB3jEI;EA6CE,qBlBtCW;EkByCT,oCH0CwD;EGzCxD,4UHpB0E;EGqB1E,4BAA4B;EAC5B,2DAA6D;EAC7D,gEHsCwD;AlB0+DhE;;AqBpkEI;EAwDI,qBlBjDS;EkBkDT,gDlBlDS;AHkkEjB;;AqBzkEI;EAkEI,oCHwBwD;EGvBxD,kFHuBwD;AlBo/DhE;;AqB9kEI;EA0EE,qBlBnEW;EkBsET,uCHawD;EGZxD,knBAA8J;ArBsgEtK;;AqBplEI;EAkFI,qBlB3ES;EkB4ET,gDlB5ES;AHklEjB;;AqBzlEI;EA2FI,clBpFS;AHslEjB;;AqB7lEI;;;EAgGI,cAAc;ArBmgEtB;;AqBnmEI;EAwGI,clBjGS;AHgmEjB;;AqBvmEI;EA2GM,qBlBpGO;AHomEjB;;AqB3mEI;EAiHM,qBAAkC;EC3IxC,yBD4I+C;ArB8/DnD;;AqBhnEI;EAwHM,gDlBjHO;AH6mEjB;;AqBpnEI;EA4HM,qBlBrHO;AHinEjB;;AqBxnEI;EAsII,qBlB/HS;AHqnEjB;;AqB5nEI;EA2IM,qBlBpIO;EkBqIP,gDlBrIO;AH0nEjB;;AmB/4DA;EACE,oBAAa;EAAb,aAAa;EACb,uBAAmB;EAAnB,mBAAmB;EACnB,sBAAmB;EAAnB,mBAAmB;AnBk5DrB;;AmBr5DA;EASI,WAAW;AnBg5Df;;Ac/mEI;EKsNJ;IAeM,oBAAa;IAAb,aAAa;IACb,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;IACvB,gBAAgB;EnB+4DpB;EmBj6DF;IAuBM,oBAAa;IAAb,aAAa;IACb,kBAAc;IAAd,cAAc;IACd,uBAAmB;IAAnB,mBAAmB;IACnB,sBAAmB;IAAnB,mBAAmB;IACnB,gBAAgB;EnB64DpB;EmBx6DF;IAgCM,qBAAqB;IACrB,WAAW;IACX,sBAAsB;EnB24D1B;EmB76DF;IAuCM,qBAAqB;EnBy4DzB;EmBh7DF;;IA4CM,WAAW;EnBw4Df;EmBp7DF;IAkDM,oBAAa;IAAb,aAAa;IACb,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;IACvB,WAAW;IACX,eAAe;EnBq4DnB;EmB37DF;IAyDM,kBAAkB;IAClB,oBAAc;IAAd,cAAc;IACd,aAAa;IACb,qBhB+KwC;IgB9KxC,cAAc;EnBq4DlB;EmBl8DF;IAiEM,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;EnBo4D3B;EmBt8DF;IAqEM,gBAAgB;EnBo4DpB;AACF;;AuBttEA;EACE,qBAAqB;EAErB,gBpBsR+B;EoBrR/B,cpBMgB;EoBLhB,kBAAkB;EAGlB,sBAAsB;EACtB,yBAAiB;EAAjB,sBAAiB;EAAjB,qBAAiB;EAAjB,iBAAiB;EACjB,6BAA6B;EAC7B,6BAA2C;ECuF3C,yBrB2RkC;ECpQ9B,eAtCY;EoBiBhB,gBrB0L+B;EOlR7B,sBP6NgC;EiB/N9B,qIjBgb6I;AH4yDnJ;;AoBxtEM;EGdN;IHeQ,gBAAgB;EpB4tEtB;AACF;;AKtuEE;EkBUE,cpBNc;EoBOd,qBAAqB;AvBguEzB;;AuBjvEA;EAsBI,UAAU;EACV,gDpBMa;AHytEjB;;AuBtvEA;EA6BI,apBiZ6B;AH40DjC;;AuB1vEA;EAkCI,eAAsD;AvB4tE1D;;AuB9sEA;;EAEE,oBAAoB;AvBitEtB;;AuBxsEE;EC3DA,WrBCa;EmBDX,yBnB6Ba;EqB3Bf,qBrB2Be;AH4uEjB;;AKnwEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBgxE7H;;AwBpwEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBkwEvF;;AwB7vEE;EAEE,WrB1BW;EqB2BX,yBrBCa;EqBAb,qBrBAa;AH+vEjB;;AwBxvEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBoyEnN;;AwBrvEI;;EAKI,gDAAiF;AxBqvEzF;;AuB7uEE;EC3DA,WrBCa;EmBDX,yBnBOc;EqBLhB,qBrBKgB;AHuyElB;;AKxyEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBqzE7H;;AwBzyEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxBuyEvF;;AwBlyEE;EAEE,WrB1BW;EqB2BX,yBrBrBc;EqBsBd,qBrBtBc;AH0zElB;;AwB7xEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBy0EnN;;AwB1xEI;;EAKI,iDAAiF;AxB0xEzF;;AuBlxEE;EC3DA,WrBCa;EmBDX,yBnBoCa;EqBlCf,qBrBkCe;AH+yEjB;;AK70EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB01E7H;;AwB90EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxB40EvF;;AwBv0EE;EAEE,WrB1BW;EqB2BX,yBrBQa;EqBPb,qBrBOa;AHk0EjB;;AwBl0EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB82EnN;;AwB/zEI;;EAKI,+CAAiF;AxB+zEzF;;AuBvzEE;EC3DA,WrBCa;EmBDX,yBnBsCa;EqBpCf,qBrBoCe;AHk1EjB;;AKl3EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB+3E7H;;AwBn3EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBi3EvF;;AwB52EE;EAEE,WrB1BW;EqB2BX,yBrBUa;EqBTb,qBrBSa;AHq2EjB;;AwBv2EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBm5EnN;;AwBp2EI;;EAKI,gDAAiF;AxBo2EzF;;AuB51EE;EC3DA,crBUgB;EmBVd,yBnBmCa;EqBjCf,qBrBiCe;AH03EjB;;AKv5EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxBo6E7H;;AwBx5EE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBs5EvF;;AwBj5EE;EAEE,crBjBc;EqBkBd,yBrBOa;EqBNb,qBrBMa;AH64EjB;;AwB54EE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxBw7EnN;;AwBz4EI;;EAKI,gDAAiF;AxBy4EzF;;AuBj4EE;EC3DA,WrBCa;EmBDX,yBnBiCa;EqB/Bf,qBrB+Be;AHi6EjB;;AK57EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBy8E7H;;AwB77EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxB27EvF;;AwBt7EE;EAEE,WrB1BW;EqB2BX,yBrBKa;EqBJb,qBrBIa;AHo7EjB;;AwBj7EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB69EnN;;AwB96EI;;EAKI,+CAAiF;AxB86EzF;;AuBt6EE;EC3DA,crBUgB;EmBVd,yBnBEc;EqBAhB,qBrBAgB;AHq+ElB;;AKj+EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxB8+E7H;;AwBl+EE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxBg+EvF;;AwB39EE;EAEE,crBjBc;EqBkBd,yBrB1Bc;EqB2Bd,qBrB3Bc;AHw/ElB;;AwBt9EE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxBkgFnN;;AwBn9EI;;EAKI,iDAAiF;AxBm9EzF;;AuB38EE;EC3DA,WrBCa;EmBDX,yBnBSc;EqBPhB,qBrBOgB;AHmgFlB;;AKtgFE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBmhF7H;;AwBvgFE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,8CAAiF;AxBqgFvF;;AwBhgFE;EAEE,WrB1BW;EqB2BX,yBrBnBc;EqBoBd,qBrBpBc;AHshFlB;;AwB3/EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBuiFnN;;AwBx/EI;;EAKI,8CAAiF;AxBw/EzF;;AuB1+EE;ECPA,crB7Be;EqB8Bf,qBrB9Be;AHmhFjB;;AK1iFE;EmBwDE,WrB7DW;EqB8DX,yBrBlCa;EqBmCb,qBrBnCa;AHyhFjB;;AwBn/EE;EAEE,+CrBxCa;AH6hFjB;;AwBl/EE;EAEE,crB7Ca;EqB8Cb,6BAA6B;AxBo/EjC;;AwBj/EE;;EAGE,WrBhFW;EqBiFX,yBrBrDa;EqBsDb,qBrBtDa;AHyiFjB;;AwBj/EI;;EAKI,+CrB7DS;AH8iFjB;;AuB1gFE;ECPA,crBnDgB;EqBoDhB,qBrBpDgB;AHykFlB;;AK1kFE;EmBwDE,WrB7DW;EqB8DX,yBrBxDc;EqByDd,qBrBzDc;AH+kFlB;;AwBnhFE;EAEE,iDrB9Dc;AHmlFlB;;AwBlhFE;EAEE,crBnEc;EqBoEd,6BAA6B;AxBohFjC;;AwBjhFE;;EAGE,WrBhFW;EqBiFX,yBrB3Ec;EqB4Ed,qBrB5Ec;AH+lFlB;;AwBjhFI;;EAKI,iDrBnFU;AHomFlB;;AuB1iFE;ECPA,crBtBe;EqBuBf,qBrBvBe;AH4kFjB;;AK1mFE;EmBwDE,WrB7DW;EqB8DX,yBrB3Ba;EqB4Bb,qBrB5Ba;AHklFjB;;AwBnjFE;EAEE,+CrBjCa;AHslFjB;;AwBljFE;EAEE,crBtCa;EqBuCb,6BAA6B;AxBojFjC;;AwBjjFE;;EAGE,WrBhFW;EqBiFX,yBrB9Ca;EqB+Cb,qBrB/Ca;AHkmFjB;;AwBjjFI;;EAKI,+CrBtDS;AHumFjB;;AuB1kFE;ECPA,crBpBe;EqBqBf,qBrBrBe;AH0mFjB;;AK1oFE;EmBwDE,WrB7DW;EqB8DX,yBrBzBa;EqB0Bb,qBrB1Ba;AHgnFjB;;AwBnlFE;EAEE,gDrB/Ba;AHonFjB;;AwBllFE;EAEE,crBpCa;EqBqCb,6BAA6B;AxBolFjC;;AwBjlFE;;EAGE,WrBhFW;EqBiFX,yBrB5Ca;EqB6Cb,qBrB7Ca;AHgoFjB;;AwBjlFI;;EAKI,gDrBpDS;AHqoFjB;;AuB1mFE;ECPA,crBvBe;EqBwBf,qBrBxBe;AH6oFjB;;AK1qFE;EmBwDE,crBpDc;EqBqDd,yBrB5Ba;EqB6Bb,qBrB7Ba;AHmpFjB;;AwBnnFE;EAEE,+CrBlCa;AHupFjB;;AwBlnFE;EAEE,crBvCa;EqBwCb,6BAA6B;AxBonFjC;;AwBjnFE;;EAGE,crBvEc;EqBwEd,yBrB/Ca;EqBgDb,qBrBhDa;AHmqFjB;;AwBjnFI;;EAKI,+CrBvDS;AHwqFjB;;AuB1oFE;ECPA,crBzBe;EqB0Bf,qBrB1Be;AH+qFjB;;AK1sFE;EmBwDE,WrB7DW;EqB8DX,yBrB9Ba;EqB+Bb,qBrB/Ba;AHqrFjB;;AwBnpFE;EAEE,+CrBpCa;AHyrFjB;;AwBlpFE;EAEE,crBzCa;EqB0Cb,6BAA6B;AxBopFjC;;AwBjpFE;;EAGE,WrBhFW;EqBiFX,yBrBjDa;EqBkDb,qBrBlDa;AHqsFjB;;AwBjpFI;;EAKI,+CrBzDS;AH0sFjB;;AuB1qFE;ECPA,crBxDgB;EqByDhB,qBrBzDgB;AH8uFlB;;AK1uFE;EmBwDE,crBpDc;EqBqDd,yBrB7Dc;EqB8Dd,qBrB9Dc;AHovFlB;;AwBnrFE;EAEE,iDrBnEc;AHwvFlB;;AwBlrFE;EAEE,crBxEc;EqByEd,6BAA6B;AxBorFjC;;AwBjrFE;;EAGE,crBvEc;EqBwEd,yBrBhFc;EqBiFd,qBrBjFc;AHowFlB;;AwBjrFI;;EAKI,iDrBxFU;AHywFlB;;AuB1sFE;ECPA,crBjDgB;EqBkDhB,qBrBlDgB;AHuwFlB;;AK1wFE;EmBwDE,WrB7DW;EqB8DX,yBrBtDc;EqBuDd,qBrBvDc;AH6wFlB;;AwBntFE;EAEE,8CrB5Dc;AHixFlB;;AwBltFE;EAEE,crBjEc;EqBkEd,6BAA6B;AxBotFjC;;AwBjtFE;;EAGE,WrBhFW;EqBiFX,yBrBzEc;EqB0Ed,qBrB1Ec;AH6xFlB;;AwBjtFI;;EAKI,8CrBjFU;AHkyFlB;;AuB/tFA;EACE,gBpB4M+B;EoB3M/B,cpBjDe;EoBkDf,qBpB2F4C;AHuoF9C;;AK3yFE;EkB4EE,cpByF8D;EoBxF9D,0BpByF+C;AH0oFnD;;AuB1uFA;EAYI,0BpBoF+C;AH8oFnD;;AuB9uFA;EAiBI,cpBtFc;EoBuFd,oBAAoB;AvBiuFxB;;AuBttFA;ECPE,oBrB0SgC;ECnR5B,kBAtCY;EoBiBhB,gBrB+H+B;EOvN7B,qBP8N+B;AH4lFnC;;AuBztFA;ECXE,uBrBqSiC;EC9Q7B,mBAtCY;EoBiBhB,gBrBgI+B;EOxN7B,qBP+N+B;AHkmFnC;;AuBvtFA;EACE,cAAc;EACd,WAAW;AvB0tFb;;AuB5tFA;EAMI,kBpBuT+B;AHm6EnC;;AuBrtFA;;;EAII,WAAW;AvButFf;;AyBl2FA;ELgBM,gCjBiP2C;AHqmFjD;;AoBl1FM;EKpBN;ILqBQ,gBAAgB;EpBs1FtB;AACF;;AyB52FA;EAII,UAAU;AzB42Fd;;AyBx2FA;EAEI,aAAa;AzB02FjB;;AyBt2FA;EACE,kBAAkB;EAClB,SAAS;EACT,gBAAgB;ELDZ,6BjBkPwC;AHynF9C;;AoBv2FM;EKNN;ILOQ,gBAAgB;EpB22FtB;AACF;;A0Bh4FA;;;;EAIE,kBAAkB;A1Bm4FpB;;A0Bh4FA;EACE,mBAAmB;A1Bm4FrB;;A2B/2FI;EACE,qBAAqB;EACrB,oBxB+N0C;EwB9N1C,uBxB6N0C;EwB5N1C,WAAW;EAhCf,uBAA8B;EAC9B,qCAA4C;EAC5C,gBAAgB;EAChB,oCAA2C;A3Bm5F7C;;A2B91FI;EACE,cAAc;A3Bi2FpB;;A0B34FA;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,avBwpBsC;EuBvpBtC,aAAa;EACb,WAAW;EACX,gBvB8tBuC;EuB7tBvC,iBvB8tBmC;EuB7tBnC,oBAA4B;EtBsGxB,eAtCY;EsB9DhB,cvBXgB;EuBYhB,gBAAgB;EAChB,gBAAgB;EAChB,sBvBvBa;EuBwBb,4BAA4B;EAC5B,qCvBfa;EOCX,sBP6NgC;AHgsFpC;;A0Bt4FI;EACE,WAAW;EACX,OAAO;A1By4Fb;;A0Bt4FI;EACE,QAAQ;EACR,UAAU;A1By4FhB;;Ac73FI;EYnBA;IACE,WAAW;IACX,OAAO;E1Bo5FX;E0Bj5FE;IACE,QAAQ;IACR,UAAU;E1Bm5Fd;AACF;;Acx4FI;EYnBA;IACE,WAAW;IACX,OAAO;E1B+5FX;E0B55FE;IACE,QAAQ;IACR,UAAU;E1B85Fd;AACF;;Acn5FI;EYnBA;IACE,WAAW;IACX,OAAO;E1B06FX;E0Bv6FE;IACE,QAAQ;IACR,UAAU;E1By6Fd;AACF;;Ac95FI;EYnBA;IACE,WAAW;IACX,OAAO;E1Bq7FX;E0Bl7FE;IACE,QAAQ;IACR,UAAU;E1Bo7Fd;AACF;;A0B96FA;EAEI,SAAS;EACT,YAAY;EACZ,aAAa;EACb,uBvB4rBuC;AHovE3C;;A2B/8FI;EACE,qBAAqB;EACrB,oBxB+N0C;EwB9N1C,uBxB6N0C;EwB5N1C,WAAW;EAzBf,aAAa;EACb,qCAA4C;EAC5C,0BAAiC;EACjC,oCAA2C;A3B4+F7C;;A2B97FI;EACE,cAAc;A3Bi8FpB;;A0Bv7FA;EAEI,MAAM;EACN,WAAW;EACX,UAAU;EACV,aAAa;EACb,qBvB8qBuC;AH2wE3C;;A2Bt+FI;EACE,qBAAqB;EACrB,oBxB+N0C;EwB9N1C,uBxB6N0C;EwB5N1C,WAAW;EAlBf,mCAA0C;EAC1C,eAAe;EACf,sCAA6C;EAC7C,wBAA+B;A3B4/FjC;;A2Br9FI;EACE,cAAc;A3Bw9FpB;;A2Br/FI;EDmDE,iBAAiB;A1Bs8FvB;;A0Bj8FA;EAEI,MAAM;EACN,WAAW;EACX,UAAU;EACV,aAAa;EACb,sBvB6pBuC;AHsyE3C;;A2BjgGI;EACE,qBAAqB;EACrB,oBxB+N0C;EwB9N1C,uBxB6N0C;EwB5N1C,WAAW;A3BogGjB;;A2BxgGI;EAgBI,aAAa;A3B4/FrB;;A2Bz/FM;EACE,qBAAqB;EACrB,qBxB4MwC;EwB3MxC,uBxB0MwC;EwBzMxC,WAAW;EA9BjB,mCAA0C;EAC1C,yBAAgC;EAChC,sCAA6C;A3B2hG/C;;A2B1/FI;EACE,cAAc;A3B6/FpB;;A2BvgGM;EDiDA,iBAAiB;A1B09FvB;;A0Bn9FA;EAKI,WAAW;EACX,YAAY;A1Bk9FhB;;A0B78FA;EE9GE,SAAS;EACT,gBAAmB;EACnB,gBAAgB;EAChB,6BzBCgB;AH8jGlB;;A0B78FA;EACE,cAAc;EACd,WAAW;EACX,uBvBipBwC;EuBhpBxC,WAAW;EACX,gBvBgK+B;EuB/J/B,cvBhHgB;EuBiHhB,mBAAmB;EAEnB,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;A1B+8FX;;AKpkGE;EqBoIE,cvBinBqD;EuBhnBrD,qBAAqB;EJ/IrB,yBnBEc;AHklGlB;;A0Bh+FA;EAiCI,WvBpJW;EuBqJX,qBAAqB;EJtJrB,yBnB6Ba;AH6jGjB;;A0Bt+FA;EAwCI,cvBrJc;EuBsJd,oBAAoB;EACpB,6BAA6B;A1Bk8FjC;;A0B17FA;EACE,cAAc;A1B67FhB;;A0Bz7FA;EACE,cAAc;EACd,sBvB2lBwC;EuB1lBxC,gBAAgB;EtBrDZ,mBAtCY;EsB6FhB,cvBzKgB;EuB0KhB,mBAAmB;A1B47FrB;;A0Bx7FA;EACE,cAAc;EACd,uBvBilBwC;EuBhlBxC,cvB9KgB;AHymGlB;;A6BtnGA;;EAEE,kBAAkB;EAClB,2BAAoB;EAApB,oBAAoB;EACpB,sBAAsB;A7BynGxB;;A6B7nGA;;EAOI,kBAAkB;EAClB,kBAAc;EAAd,cAAc;A7B2nGlB;;AK1nGE;;EwBII,UAAU;A7B2nGhB;;A6BxoGA;;;;EAkBM,UAAU;A7B6nGhB;;A6BvnGA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,oBAA2B;EAA3B,2BAA2B;A7B0nG7B;;A6B7nGA;EAMI,WAAW;A7B2nGf;;A6BvnGA;;EAII,iB1BmM6B;AHq7FjC;;A6B5nGA;;EnBHI,0BmBa8B;EnBZ9B,6BmBY8B;A7BwnGlC;;A6BloGA;;EnBWI,yBmBI6B;EnBH7B,4BmBG6B;A7BynGjC;;A6BzmGA;EACE,wBAAmC;EACnC,uBAAkC;A7B4mGpC;;A6B9mGA;;;EAOI,cAAc;A7B6mGlB;;A6B1mGE;EACE,eAAe;A7B6mGnB;;A6BzmGA;EACE,uBAAsC;EACtC,sBAAqC;A7B4mGvC;;A6BzmGA;EACE,sBAAsC;EACtC,qBAAqC;A7B4mGvC;;A6BxlGA;EACE,0BAAsB;EAAtB,sBAAsB;EACtB,qBAAuB;EAAvB,uBAAuB;EACvB,qBAAuB;EAAvB,uBAAuB;A7B2lGzB;;A6B9lGA;;EAOI,WAAW;A7B4lGf;;A6BnmGA;;EAYI,gB1BkH6B;AH0+FjC;;A6BxmGA;;EnBrEI,6BmBuF+B;EnBtF/B,4BmBsF+B;A7B4lGnC;;A6B9mGA;;EnBnFI,yBmB0G4B;EnBzG5B,0BmByG4B;A7B6lGhC;;A6B5kGA;;EAGI,gBAAgB;A7B8kGpB;;A6BjlGA;;;;EAOM,kBAAkB;EAClB,sBAAsB;EACtB,oBAAoB;A7BilG1B;;A8B1uGA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,uBAAoB;EAApB,oBAAoB;EACpB,WAAW;A9B6uGb;;A8BlvGA;;;;EAWI,kBAAkB;EAClB,kBAAc;EAAd,cAAc;EACd,SAAS;EACT,YAAY;EACZ,gBAAgB;A9B8uGpB;;A8B7vGA;;;;;;;;;;;;EAoBM,iB3BkN2B;AHsiGjC;;A8B5wGA;;;EA4BI,UAAU;A9BsvGd;;A8BlxGA;EAiCI,UAAU;A9BqvGd;;A8BtxGA;;EpB4BI,0BoBUmD;EpBTnD,6BoBSmD;A9BsvGvD;;A8B5xGA;;EpB0CI,yBoBHmD;EpBInD,4BoBJmD;A9B2vGvD;;A8BlyGA;EA6CI,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;A9ByvGvB;;A8BvyGA;;EpB4BI,0BoBqB6E;EpBpB7E,6BoBoB6E;A9B4vGjF;;A8B7yGA;EpB0CI,yBoBQsE;EpBPtE,4BoBOsE;A9BgwG1E;;A8BrvGA;;EAEE,oBAAa;EAAb,aAAa;A9BwvGf;;A8B1vGA;;EAQI,kBAAkB;EAClB,UAAU;A9BuvGd;;A8BhwGA;;EAYM,UAAU;A9ByvGhB;;A8BrwGA;;;;;;;;EAoBI,iB3BqJ6B;AHumGjC;;A8BxvGA;EAAuB,kB3BiJU;AH2mGjC;;A8B3vGA;EAAsB,iB3BgJW;AH+mGjC;;A8BvvGA;EACE,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,yB3B4RkC;E2B3RlC,gBAAgB;E1BuBZ,eAtCY;E0BiBhB,gB3BqL+B;E2BpL/B,gB3ByL+B;E2BxL/B,c3B9FgB;E2B+FhB,kBAAkB;EAClB,mBAAmB;EACnB,yB3BtGgB;E2BuGhB,yB3BrGgB;EOOd,sBP6NgC;AH4nGpC;;A8BvwGA;;EAkBI,aAAa;A9B0vGjB;;A8BhvGA;;EAEE,gCZR8D;AlB2vGhE;;A8BhvGA;;;;;;EAME,oB3BuQgC;ECnR5B,kBAtCY;E0BoDhB,gB3B4F+B;EOvN7B,qBP8N+B;AHipGnC;;A8BhvGA;;EAEE,kCZzB8D;AlB4wGhE;;A8BhvGA;;;;;;EAME,uB3BiPiC;EC9Q7B,mBAtCY;E0BqEhB,gB3B4E+B;EOxN7B,qBP+N+B;AHiqGnC;;A8BhvGA;;EAEE,sBAA0E;A9BmvG5E;;A8BxuGA;;;;;;EpB7II,0BoBmJ4B;EpBlJ5B,6BoBkJ4B;A9B4uGhC;;A8BzuGA;;;;;;EpBxII,yBoB8I2B;EpB7I3B,4BoB6I2B;A9B6uG/B;;A+Bl6GA;EACE,kBAAkB;EAClB,UAAU;EACV,cAAc;EACd,kBAA+C;EAC/C,oBAAqE;EACrE,iCAAmB;EAAnB,mBAAmB;A/Bq6GrB;;A+Bl6GA;EACE,2BAAoB;EAApB,oBAAoB;EACpB,kB5Bwf0C;AH66F5C;;A+Bl6GA;EACE,kBAAkB;EAClB,OAAO;EACP,WAAW;EACX,W5Bof0C;E4Bnf1C,eAAkF;EAClF,UAAU;A/Bq6GZ;;A+B36GA;EASI,W5BzBW;E4B0BX,qB5BEa;EmB7Bb,yBnB6Ba;AHq6GjB;;A+Bj7GA;EAoBM,gD5BRW;AHy6GjB;;A+Br7GA;EAyBI,qB5BqbsE;AH2+F1E;;A+Bz7GA;EA6BI,W5B7CW;E4B8CX,yB5Bif8E;E4Bhf9E,qB5Bgf8E;AHg7FlF;;A+B/7GA;EAuCM,c5BjDY;AH68GlB;;A+Bn8GA;EA0CQ,yB5BxDU;AHq9GlB;;A+Bn5GA;EACE,kBAAkB;EAClB,gBAAgB;EAEhB,mBAAmB;A/Bq5GrB;;A+Bz5GA;EASI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5BubwC;E4BtbxC,Y5BsbwC;E4BrbxC,oBAAoB;EACpB,WAAW;EACX,sB5BrFW;E4BsFX,yB5B+I6B;AHqwGjC;;A+Bt6GA;EAwBI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5BwawC;E4BvaxC,Y5BuawC;E4BtaxC,WAAW;EACX,mCAAgE;A/Bk5GpE;;A+Bz4GA;ErBjGI,sBP6NgC;AHixGpC;;A+B74GA;EAOM,kOb7D4E;AlBu8GlF;;A+Bj5GA;EAaM,qB5B7FW;EmB7Bb,yBnB6Ba;AHs+GjB;;A+Bt5GA;EAkBM,+KbxE4E;AlBg9GlF;;A+B15GA;ET7GI,wCnB6Ba;AH8+GjB;;A+B95GA;ET7GI,wCnB6Ba;AHk/GjB;;A+B93GA;EAGI,kB5ByZ+C;AHs+FnD;;A+Bl4GA;EAQM,8KblG4E;AlBg+GlF;;A+Bt4GA;ETjJI,wCnB6Ba;AH8/GjB;;A+Bl3GA;EACE,qBAA2D;A/Bq3G7D;;A+Bt3GA;EAKM,cAAqD;EACrD,c5BiY+E;E4BhY/E,mBAAmB;EAEnB,qB5B+X4E;AHq/FlF;;A+B73GA;EAaM,wBblE0D;EamE1D,0BbnE0D;EaoE1D,uBbhD0D;EaiD1D,wBbjD0D;EakD1D,yB5BpLY;E4BsLZ,qB5BqX4E;EiBviB5E,iJjByf+H;EiBzf/H,yIjByf+H;EiBzf/H,8KjByf+H;AH6iGrI;;AoBliHM;EW2JN;IX1JQ,gBAAgB;EpBsiHtB;AACF;;A+B74GA;EA0BM,sB5BlMS;E4BmMT,sCAA4E;EAA5E,8BAA4E;A/Bu3GlF;;A+Bl5GA;ETzKI,wCnB6Ba;AHkiHjB;;A+Bz2GA;EACE,qBAAqB;EACrB,WAAW;EACX,mCbrG8D;EasG9D,0C5BmKkC;ECpQ9B,eAtCY;E2B0IhB,gB5B4D+B;E4B3D/B,gB5BgE+B;E4B/D/B,c5BvNgB;E4BwNhB,sBAAsB;EACtB,uO5BkW+I;E4BjW/I,yB5B7NgB;EOOd,sBP6NgC;E4BJlC,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/B02GlB;;A+Bz3GA;EAkBI,qB5BuPsE;E4BtPtE,UAAU;EAKR,gD5BjNW;AHwjHjB;;A+B/3GA;EAiCM,c5B/OY;E4BgPZ,sB5BvPS;AHylHf;;A+Bp4GA;EAwCI,YAAY;EACZ,sB5B8HgC;E4B7HhC,sBAAsB;A/Bg2G1B;;A+B14GA;EA8CI,c5B7Pc;E4B8Pd,yB5BlQc;AHkmHlB;;A+B/4GA;EAoDI,aAAa;A/B+1GjB;;A+Bn5GA;EAyDI,kBAAkB;EAClB,0B5BxQc;AHsmHlB;;A+B11GA;EACE,kCbjK8D;EakK9D,oB5BgHkC;E4B/GlC,uB5B+GkC;E4B9GlC,oB5B+GiC;EC9Q7B,mBAtCY;AJmiHlB;;A+B11GA;EACE,gCbzK8D;Ea0K9D,mB5B6GiC;E4B5GjC,sB5B4GiC;E4B3GjC,kB5B4GgC;ECnR5B,kBAtCY;AJ2iHlB;;A+Br1GA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,WAAW;EACX,mCbzL8D;Ea0L9D,gBAAgB;A/Bw1GlB;;A+Br1GA;EACE,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,mCbjM8D;EakM9D,SAAS;EACT,UAAU;A/Bw1GZ;;A+B91GA;EASI,qB5BqKsE;E4BpKtE,gD5B9Ra;AHunHjB;;A+Bn2GA;;EAgBI,yB5B9Tc;AHspHlB;;A+Bx2GA;EAqBM,iB5B4TQ;AH2hGd;;A+B52GA;EA0BI,0BAA0B;A/Bs1G9B;;A+Bl1GA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,OAAO;EACP,UAAU;EACV,mCbjO8D;EakO9D,yB5BuCkC;E4BrClC,gB5B/D+B;E4BgE/B,gB5B3D+B;E4B4D/B,c5BlVgB;E4BmVhB,sB5B1Va;E4B2Vb,yB5BvVgB;EOOd,sBP6NgC;AHw8GpC;;A+Bl2GA;EAkBI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,UAAU;EACV,cAAc;EACd,6BbnP4D;EaoP5D,yB5BqBgC;E4BpBhC,gB5B3E6B;E4B4E7B,c5BlWc;E4BmWd,iBAAiB;ET3WjB,yBnBGc;E4B0Wd,oBAAoB;ErBjWpB,kCqBkWgF;A/Bo1GpF;;A+B10GA;EACE,WAAW;EACX,cbzQ2B;Ea0Q3B,UAAU;EACV,6BAA6B;EAC7B,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/B60GlB;;A+Bl1GA;EAQI,aAAa;A/B80GjB;;A+Bt1GA;EAY8B,gE5BvWb;AHqrHjB;;A+B11GA;EAa8B,gE5BxWb;AHyrHjB;;A+B91GA;EAc8B,gE5BzWb;AH6rHjB;;A+Bl2GA;EAkBI,SAAS;A/Bo1Gb;;A+Bt2GA;EAsBI,W5BqN6C;E4BpN7C,Y5BoN6C;E4BnN7C,oBAAyE;EThZzE,yBnB6Ba;E4BqXb,S5BoN0C;EO1lB1C,mBP2lB6C;EiB7lB3C,oHjByf+H;EiBzf/H,4GjByf+H;E4B7GjI,wBAAgB;EAAhB,gBAAgB;A/Bm1GpB;;AoB3tHM;EW0WN;IXzWQ,wBAAgB;IAAhB,gBAAgB;EpB+tHtB;AACF;;A+Bv3GA;ETxXI,yBnB2mB2E;AHwoG/E;;A+B33GA;EAsCI,W5B8LoC;E4B7LpC,c5B8LqC;E4B7LrC,kBAAkB;EAClB,e5B6LuC;E4B5LvC,yB5B9Zc;E4B+Zd,yBAAyB;ErBvZzB,mBPolBoC;AH6pGxC;;A+Br4GA;EAiDI,W5B0L6C;E4BzL7C,Y5ByL6C;EmBnmB7C,yBnB6Ba;E4B+Yb,S5B0L0C;EO1lB1C,mBP2lB6C;EiB7lB3C,iHjByf+H;EiBzf/H,4GjByf+H;E4BnFjI,qBAAgB;EAAhB,gBAAgB;A/Bu1GpB;;AoBzvHM;EW0WN;IXzWQ,qBAAgB;IAAhB,gBAAgB;EpB6vHtB;AACF;;A+Br5GA;ETxXI,yBnB2mB2E;AHsqG/E;;A+Bz5GA;EAgEI,W5BoKoC;E4BnKpC,c5BoKqC;E4BnKrC,kBAAkB;EAClB,e5BmKuC;E4BlKvC,yB5Bxbc;E4Bybd,yBAAyB;ErBjbzB,mBPolBoC;AH2rGxC;;A+Bn6GA;EA2EI,W5BgK6C;E4B/J7C,Y5B+J6C;E4B9J7C,aAAa;EACb,oB5BpE+B;E4BqE/B,mB5BrE+B;EmBlY/B,yBnB6Ba;E4B4ab,S5B6J0C;EO1lB1C,mBP2lB6C;EiB7lB3C,gHjByf+H;EiBzf/H,4GjByf+H;E4BtDjI,gBAAgB;A/B21GpB;;AoB1xHM;EW0WN;IXzWQ,oBAAgB;IAAhB,gBAAgB;EpB8xHtB;AACF;;A+Bt7GA;ETxXI,yBnB2mB2E;AHusG/E;;A+B17GA;EA6FI,W5BuIoC;E4BtIpC,c5BuIqC;E4BtIrC,kBAAkB;EAClB,e5BsIuC;E4BrIvC,6BAA6B;EAC7B,yBAAyB;EACzB,oBAA4C;A/Bi2GhD;;A+Bp8GA;EAwGI,yB5B5dc;EOQd,mBPolBoC;AHiuGxC;;A+Bz8GA;EA6GI,kBAAkB;EAClB,yB5Blec;EOQd,mBPolBoC;AHuuGxC;;A+B/8GA;EAoHM,yB5BteY;AHq0HlB;;A+Bn9GA;EAwHM,eAAe;A/B+1GrB;;A+Bv9GA;EA4HM,yB5B9eY;AH60HlB;;A+B39GA;EAgIM,eAAe;A/B+1GrB;;A+B/9GA;EAoIM,yB5BtfY;AHq1HlB;;A+B11GA;;;EXvfM,4GjByf+H;AH81GrI;;AoBn1HM;EWmfN;;;IXlfQ,gBAAgB;EpBy1HtB;AACF;;AgC12HA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AhC62HlB;;AgC12HA;EACE,cAAc;EACd,oB7ByqBsC;AHosGxC;;AK52HE;E2BGE,qBAAqB;AhC62HzB;;AgCn3HA;EAWI,c7BXc;E6BYd,oBAAoB;EACpB,eAAe;AhC42HnB;;AgCp2HA;EACE,gC7BzBgB;AHg4HlB;;AgCx2HA;EAII,mB7BsM6B;AHkqHjC;;AgC52HA;EAQI,6BAAgD;EtBfhD,+BPoNgC;EOnNhC,gCPmNgC;AHqqHpC;;AKp4HE;E2B8BI,qC7BpCY;AH84HlB;;AgCt3HA;EAgBM,c7BrCY;E6BsCZ,6BAA6B;EAC7B,yBAAyB;AhC02H/B;;AgC53HA;;EAwBI,c7B5Cc;E6B6Cd,sB7BpDW;E6BqDX,kC7BrDW;AH85Hf;;AgCn4HA;EA+BI,gB7B2K6B;EOjN7B,yBsBwC4B;EtBvC5B,0BsBuC4B;AhCw2HhC;;AgC/1HA;EtB1DI,sBP6NgC;AHgsHpC;;AgCn2HA;;EAOI,W7B5EW;E6B6EX,yB7BjDa;AHk5HjB;;AgCx1HA;;EAGI,kBAAc;EAAd,cAAc;EACd,kBAAkB;AhC01HtB;;AgCt1HA;;EAGI,0BAAa;EAAb,aAAa;EACb,oBAAY;E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IAAnB,mBAAmB;EjC8+H3B;EiCtgIG;IA2BO,kBAAkB;EjC8+H5B;EiCzgIG;IA+BO,qB9B4hB6B;I8B3hB7B,oB9B2hB6B;EHk9GvC;EiC7gIG;;IAsCK,qBAAiB;IAAjB,iBAAiB;EjC2+HzB;EiCjhIG;IAqDK,+BAAwB;IAAxB,wBAAwB;IAGxB,6BAAgB;IAAhB,gBAAgB;EjC69HxB;EiCrhIG;IA4DK,aAAa;EjC49HrB;AACF;;AiC9hIA;EAyBQ,yBAAqB;EAArB,qBAAqB;EACrB,oBAA2B;EAA3B,2BAA2B;AjCygInC;;AiCniIA;;EAQU,gBAAgB;EAChB,eAAe;AjCgiIzB;;AiCziIA;EA6BU,uBAAmB;EAAnB,mBAAmB;AjCghI7B;;AiC7iIA;EAgCY,kBAAkB;AjCihI9B;;AiCjjIA;EAoCY,qB9B4hB6B;E8B3hB7B,oB9B2hB6B;AHs/GzC;;AiCtjIA;;EA2CU,qBAAiB;EAAjB,iBAAiB;AjCghI3B;;AiC3jIA;EA0DU,+BAAwB;EAAxB,wBAAwB;EAGxB,6BAAgB;EAAhB,gBAAgB;AjCmgI1B;;AiChkIA;EAiEU,aAAa;AjCmgIvB;;AiCt/HA;EAEI,yB9B/MW;AHusIf;;AKxsIE;E4BmNI,yB9BlNS;AH2sIf;;AiC9/HA;EAWM,yB9BxNS;AH+sIf;;AKhtIE;E4B4NM,yB9B3NO;AHmtIf;;AiCtgIA;EAkBQ,yB9B/NO;AHutIf;;AiC1gIA;;;;EA0BM,yB9BvOS;AH8tIf;;AiCjhIA;EA+BI,yB9B5OW;E8B6OX,gC9B7OW;AHmuIf;;AiCthIA;EAoCI,mRfrM8E;AlB2rIlF;;AiC1hIA;EAwCI,yB9BrPW;AH2uIf;;AiC9hIA;EA0CM,yB9BvPS;AH+uIf;;AKhvIE;E4B2PM,yB9B1PO;AHmvIf;;AiCl/HA;EAEI,W9B7QW;AHiwIf;;AKxvIE;E4BuQI,W9BhRS;AHqwIf;;AiC1/HA;EAWM,+B9BtRS;AHywIf;;AKhwIE;E4BgRM,gC9BzRO;AH6wIf;;AiClgIA;EAkBQ,gC9B7RO;AHixIf;;AiCtgIA;;;;EA0BM,W9BrSS;AHwxIf;;AiC7gIA;EA+BI,+B9B1SW;E8B2SX,sC9B3SW;AH6xIf;;AiClhIA;EAoCI,yRfzP8E;AlB2uIlF;;AiCthIA;EAwCI,+B9BnTW;AHqyIf;;AiC1hIA;EA0CM,W9BrTS;AHyyIf;;AKhyIE;E4B+SM,W9BxTO;AH6yIf;;AkChzIA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,YAAY;EAEZ,qBAAqB;EACrB,sB/BJa;E+BKb,2BAA2B;EAC3B,sC/BIa;EOCX,sBP6NgC;AHilIpC;;AkC5zIA;EAaI,eAAe;EACf,cAAc;AlCmzIlB;;AkCj0IA;EAkBI,mBAAmB;EACnB,sBAAsB;AlCmzI1B;;AkCt0IA;EAsBM,mBAAmB;ExBCrB,2CQmH4D;ERlH5D,4CQkH4D;AlBksIhE;;AkC50IA;EA2BM,sBAAsB;ExBUxB,+CQqG4D;ERpG5D,8CQoG4D;AlBwsIhE;;AkCl1IA;;EAoCI,aAAa;AlCmzIjB;;AkC/yIA;EAGE,kBAAc;EAAd,cAAc;EAGd,eAAe;EACf,gB/B0wByC;AHoiH3C;;AkC1yIA;EACE,sB/BowBwC;AHyiH1C;;AkC1yIA;EACE,qBAA+B;EAC/B,gBAAgB;AlC6yIlB;;AkC1yIA;EACE,gBAAgB;AlC6yIlB;;AKl2IE;E6B0DE,qBAAqB;AlC4yIzB;;AkC9yIA;EAMI,oB/BmvBuC;AHyjH3C;;AkCpyIA;EACE,wB/B0uByC;E+BzuBzC,gBAAgB;EAEhB,qC/BrEa;E+BsEb,6C/BtEa;AH42If;;AkC3yIA;ExBhEI,0DwBwE8E;AlCuyIlF;;AkCnyIA;EACE,wB/B8tByC;E+B5tBzC,qC/BhFa;E+BiFb,0C/BjFa;AHs3If;;AkCzyIA;ExB5EI,0DQ4H4D;AlB6vIhE;;AkC7xIA;EACE,uBAAiC;EACjC,uB/B4sBwC;E+B3sBxC,sBAAgC;EAChC,gBAAgB;AlCgyIlB;;AkC7xIA;EACE,uBAAiC;EACjC,sBAAgC;AlCgyIlC;;AkC5xIA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,gB/BusByC;EOtzBvC,kCQ4H4D;AlBmxIhE;;AkC5xIA;;;EAGE,oBAAc;EAAd,cAAc;EACd,WAAW;AlC+xIb;;AkC5xIA;;ExBjHI,2CQmH4D;ERlH5D,4CQkH4D;AlBgyIhE;;AkC7xIA;;ExBxGI,+CQqG4D;ERpG5D,8CQoG4D;AlBsyIhE;;AkC3xIA;EAEI,mB/B+qBsD;AH8mH1D;;Ac53II;EoB6FJ;IAMI,oBAAa;IAAb,aAAa;IACb,uBAAmB;IAAnB,mBAAmB;IACnB,mB/ByqBsD;I+BxqBtD,kB/BwqBsD;EHsnHxD;EkCvyIF;IAaM,gBAAY;IAAZ,YAAY;IACZ,kB/BmqBoD;I+BlqBpD,gBAAgB;IAChB,iB/BiqBoD;EH4nHxD;AACF;;AkCpxIA;EAII,mB/BmpBsD;AHioH1D;;Ac/4II;EoBuHJ;IAQI,oBAAa;IAAb,aAAa;IACb,uBAAmB;IAAnB,mBAAmB;ElCqxIrB;EkC9xIF;IAcM,gBAAY;IAAZ,YAAY;IACZ,gBAAgB;ElCmxIpB;EkClyIF;IAkBQ,cAAc;IACd,cAAc;ElCmxIpB;EkCtyIF;IxBjJI,0BwB0KoC;IxBzKpC,6BwByKoC;ElCixItC;EkC1yIF;;IA8BY,0BAA0B;ElCgxIpC;EkC9yIF;;IAmCY,6BAA6B;ElC+wIvC;EkClzIF;IxBnII,yBwB2KmC;IxB1KnC,4BwB0KmC;ElC8wIrC;EkCtzIF;;IA6CY,yBAAyB;ElC6wInC;EkC1zIF;;IAkDY,4BAA4B;ElC4wItC;AACF;;AkChwIA;EAEI,sB/BwkBsC;AH0rH1C;;Ac17II;EoBsLJ;IAMI,uB/BqlBiC;I+BrlBjC,oB/BqlBiC;I+BrlBjC,e/BqlBiC;I+BplBjC,2B/BqlBuC;I+BrlBvC,wB/BqlBuC;I+BrlBvC,mB/BqlBuC;I+BplBvC,UAAU;IACV,SAAS;ElCmwIX;EkC5wIF;IAYM,qBAAqB;IACrB,WAAW;ElCmwIf;AACF;;AkC1vIA;EACE,qBAAqB;AlC6vIvB;;AkC9vIA;EAII,gBAAgB;AlC8vIpB;;AkClwIA;EAOM,gBAAgB;ExBvOlB,6BwBwOiC;ExBvOjC,4BwBuOiC;AlCgwIrC;;AkCxwIA;ExB9OI,yBwB0P8B;ExBzP9B,0BwByP8B;AlCiwIlC;;AkC7wIA;ExBvPI,gBwBuQ0B;EACxB,mB/B9C2B;AH+yIjC;;AmC3hJA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,qBhC6hCsC;EgC5hCtC,mBhC+hCsC;EgC7hCtC,gBAAgB;EAChB,yBhCEgB;EOSd,sBP6NgC;AHszIpC;;AmC1hJA;EACE,oBAAa;EAAb,aAAa;AnC6hJf;;AmC9hJA;EAKI,oBhCihCqC;AH4gHzC;;AmCliJA;EAQM,qBAAqB;EACrB,qBhC6gCmC;EgC5gCnC,chCRY;EgCSZ,YhCkhCuC;AH4gH7C;;AmCziJA;EAsBI,0BAA0B;AnCuhJ9B;;AmC7iJA;EA0BI,qBAAqB;AnCuhJzB;;AmCjjJA;EA8BI,chC5Bc;AHmjJlB;;AoChkJA;EACE,oBAAa;EAAb,aAAa;E7BGb,eAAe;EACf,gBAAgB;EGad,sBP6NgC;AHw1IpC;;AoCjkJA;EACE,kBAAkB;EAClB,cAAc;EACd,uBjC8wBwC;EiC7wBxC,iBjCkO+B;EiCjO/B,iBjCixBsC;EiChxBtC,cjCuBe;EiCrBf,sBjCPa;EiCQb,yBjCLgB;AHwkJlB;;AoC5kJA;EAYI,UAAU;EACV,cjC8J8D;EiC7J9D,qBAAqB;EACrB,yBjCZc;EiCad,qBjCZc;AHglJlB;;AoCplJA;EAoBI,UAAU;EACV,UjCywBiC;EiCxwBjC,gDjCOa;AH6jJjB;;AoChkJA;EAGM,cAAc;E1BahB,+BP+LgC;EO9LhC,kCP8LgC;AHu3IpC;;AoCtkJA;E1BEI,gCP6MgC;EO5MhC,mCP4MgC;AH43IpC;;AoC3kJA;EAcI,UAAU;EACV,WjCxCW;EiCyCX,yBjCba;EiCcb,qBjCda;AH+kJjB;;AoCllJA;EAqBI,cjCxCc;EiCyCd,oBAAoB;EAEpB,YAAY;EACZ,sBjClDW;EiCmDX,qBjChDc;AHgnJlB;;AqCvnJE;EACE,uBlCuxBsC;EC5pBpC,kBAtCY;EiCnFd,gBlCmO6B;AHu5IjC;;AqCrnJM;E3BqCF,8BPgM+B;EO/L/B,iCP+L+B;AHq5InC;;AqCrnJM;E3BkBF,+BP8M+B;EO7M/B,kCP6M+B;AH05InC;;AqCvoJE;EACE,uBlCqxBqC;EC1pBnC,mBAtCY;EiCnFd,gBlCoO6B;AHs6IjC;;AqCroJM;E3BqCF,8BPiM+B;EOhM/B,iCPgM+B;AHo6InC;;AqCroJM;E3BkBF,+BP+M+B;EO9M/B,kCP8M+B;AHy6InC;;AsCrpJA;EACE,qBAAqB;EACrB,qBnCs5BsC;ECr1BpC,cAAW;EkC/Db,gBnCuR+B;EmCtR/B,cAAc;EACd,kBAAkB;EAClB,mBAAmB;EACnB,wBAAwB;E5BKtB,sBP6NgC;EiB/N9B,qIjBgb6I;AHuuInJ;;AoBnpJM;EkBfN;IlBgBQ,gBAAgB;EpBupJtB;AACF;;AK7pJE;EiCGI,qBAAqB;AtC8pJ3B;;AsC5qJA;EAoBI,aAAa;AtC4pJjB;;AsCvpJA;EACE,kBAAkB;EAClB,SAAS;AtC0pJX;;AsCnpJA;EACE,oBnC23BsC;EmC13BtC,mBnC03BsC;EOj5BpC,oBPo5BqC;AH0xHzC;;AsC9oJE;ECjDA,WpCMa;EoCLb,yBpCiCe;AHkqJjB;;AKrrJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCmsJxC;;AuCtsJU;EAQJ,UAAU;EACV,+CpCsBW;AH4qJjB;;AsC7pJE;ECjDA,WpCMa;EoCLb,yBpCWgB;AHusJlB;;AKpsJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCktJxC;;AuCrtJU;EAQJ,UAAU;EACV,iDpCAY;AHitJlB;;AsC5qJE;ECjDA,WpCMa;EoCLb,yBpCwCe;AHyrJjB;;AKntJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCiuJxC;;AuCpuJU;EAQJ,UAAU;EACV,+CpC6BW;AHmsJjB;;AsC3rJE;ECjDA,WpCMa;EoCLb,yBpC0Ce;AHssJjB;;AKluJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCgvJxC;;AuCnvJU;EAQJ,UAAU;EACV,gDpC+BW;AHgtJjB;;AsC1sJE;ECjDA,cpCegB;EoCdhB,yBpCuCe;AHwtJjB;;AKjvJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvC+vJxC;;AuClwJU;EAQJ,UAAU;EACV,+CpC4BW;AHkuJjB;;AsCztJE;ECjDA,WpCMa;EoCLb,yBpCqCe;AHyuJjB;;AKhwJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC8wJxC;;AuCjxJU;EAQJ,UAAU;EACV,+CpC0BW;AHmvJjB;;AsCxuJE;ECjDA,cpCegB;EoCdhB,yBpCMgB;AHuxJlB;;AK/wJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvC6xJxC;;AuChyJU;EAQJ,UAAU;EACV,iDpCLY;AHiyJlB;;AsCvvJE;ECjDA,WpCMa;EoCLb,yBpCagB;AH+xJlB;;AK9xJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC4yJxC;;AuC/yJU;EAQJ,UAAU;EACV,8CpCEY;AHyyJlB;;AwCxzJA;EACE,kBAAoD;EACpD,mBrCmzBsC;EqCjzBtC,yBrCKgB;EOSd,qBP8N+B;AH+kJnC;;AcnwJI;E0B5DJ;IAQI,kBrC6yBoC;EH+gItC;AACF;;AwCzzJA;EACE,gBAAgB;EAChB,eAAe;E9BIb,gB8BHsB;AxC4zJ1B;;AyCv0JA;EACE,kBAAkB;EAClB,wBtCm9ByC;EsCl9BzC,mBtCm9BsC;EsCl9BtC,6BAA6C;E/BU3C,sBP6NgC;AHomJpC;;AyCt0JA;EAEE,cAAc;AzCw0JhB;;AyCp0JA;EACE,gBtC4Q+B;AH2jJjC;;AyC/zJA;EACE,mBAAsD;AzCk0JxD;;AyCn0JA;EAKI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,UAAU;EACV,wBtCo7BuC;EsCn7BvC,cAAc;AzCk0JlB;;AyCxzJE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBqwJlE;;A0Cz2JE;EACE,yBAAqC;A1C42JzC;;A0Cz2JE;EACE,cAA0B;A1C42J9B;;AyCt0JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBmxJlE;;A0Cv3JE;EACE,yBAAqC;A1C03JzC;;A0Cv3JE;EACE,cAA0B;A1C03J9B;;AyCp1JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBiyJlE;;A0Cr4JE;EACE,yBAAqC;A1Cw4JzC;;A0Cr4JE;EACE,cAA0B;A1Cw4J9B;;AyCl2JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlB+yJlE;;A0Cn5JE;EACE,yBAAqC;A1Cs5JzC;;A0Cn5JE;EACE,cAA0B;A1Cs5J9B;;AyCh3JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlB6zJlE;;A0Cj6JE;EACE,yBAAqC;A1Co6JzC;;A0Cj6JE;EACE,cAA0B;A1Co6J9B;;AyC93JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlB20JlE;;A0C/6JE;EACE,yBAAqC;A1Ck7JzC;;A0C/6JE;EACE,cAA0B;A1Ck7J9B;;AyC54JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBy1JlE;;A0C77JE;EACE,yBAAqC;A1Cg8JzC;;A0C77JE;EACE,cAA0B;A1Cg8J9B;;AyC15JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBu2JlE;;A0C38JE;EACE,yBAAqC;A1C88JzC;;A0C38JE;EACE,cAA0B;A1C88J9B;;A2Ct9JE;EACE;IAAO,2BAAuC;E3C09JhD;E2Cz9JE;IAAK,wBAAwB;E3C49J/B;AACF;;A2C/9JE;EACE;IAAO,2BAAuC;E3C09JhD;E2Cz9JE;IAAK,wBAAwB;E3C49J/B;AACF;;A2Cz9JA;EACE,oBAAa;EAAb,aAAa;EACb,YxC49BsC;EwC39BtC,gBAAgB;EAChB,cAAc;EvCmHV,kBAtCY;EuC3EhB,yBxCLgB;EOSd,sBP6NgC;AH4vJpC;;A2Cx9JA;EACE,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,qBAAuB;EAAvB,uBAAuB;EACvB,gBAAgB;EAChB,WxCjBa;EwCkBb,kBAAkB;EAClB,mBAAmB;EACnB,yBxCQe;EiBnBX,2BjB89B4C;AHygIlD;;AoBn+JM;EuBDN;IvBEQ,gBAAgB;EpBu+JtB;AACF;;A2C99JA;ErBYE,qMAA6I;EqBV7I,0BxCq8BsC;AH4hIxC;;A2C79JE;EACE,0DxCu8BkD;EwCv8BlD,kDxCu8BkD;AHyhItD;;A2C79JM;EAJJ;IAKM,uBAAe;IAAf,eAAe;E3Ci+JrB;AACF;;A4C5gKA;EACE,oBAAa;EAAb,aAAa;EACb,qBAAuB;EAAvB,uBAAuB;A5C+gKzB;;A4C5gKA;EACE,WAAO;EAAP,OAAO;A5C+gKT;;A6CjhKA;EACE,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EAGtB,eAAe;EACf,gBAAgB;EnCQd,sBP6NgC;AH8yJpC;;A6CzgKA;EACE,WAAW;EACX,c1CRgB;E0CShB,mBAAmB;A7C4gKrB;;AKnhKE;EwCWE,UAAU;EACV,c1Cdc;E0Ced,qBAAqB;EACrB,yB1CtBc;AHkiKlB;;A6CthKA;EAcI,c1ClBc;E0CmBd,yB1C1Bc;AHsiKlB;;A6CngKA;EACE,kBAAkB;EAClB,cAAc;EACd,wB1C28ByC;E0Cx8BzC,sB1C3Ca;E0C4Cb,sC1ClCa;AHsiKf;;A6C3gKA;EnCjBI,+BmC2BkC;EnC1BlC,gCmC0BkC;A7CsgKtC;;A6ChhKA;EnCHI,mCmCiBqC;EnChBrC,kCmCgBqC;A7CugKzC;;A6CrhKA;EAmBI,c1ClDc;E0CmDd,oBAAoB;EACpB,sB1C1DW;AHgkKf;;A6C3hKA;EA0BI,UAAU;EACV,W1ChEW;E0CiEX,yB1CrCa;E0CsCb,qB1CtCa;AH2iKjB;;A6CliKA;EAiCI,mBAAmB;A7CqgKvB;;A6CtiKA;EAoCM,gB1C4J2B;E0C3J3B,qB1C2J2B;AH22JjC;;A6Cx/JI;EACE,uBAAmB;EAAnB,mBAAmB;A7C2/JzB;;A6C5/JI;EnCtBA,kCPsKgC;EOlLhC,0BmCwCwC;A7C2/J5C;;A6CjgKI;EnClCA,gCPkLgC;EOtKhC,4BmCiC0C;A7C2/J9C;;A6CtgKI;EAeM,aAAa;A7C2/JvB;;A6C1gKI;EAmBM,qB1C0HuB;E0CzHvB,oBAAoB;A7C2/J9B;;A6C/gKI;EAuBQ,iB1CsHqB;E0CrHrB,sB1CqHqB;AHu4JjC;;AcvjKI;E+BmCA;IACE,uBAAmB;IAAnB,mBAAmB;E7CwhKvB;E6CzhKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7CuhK1C;E6C7hKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7CshK5C;E6CjiKE;IAeM,aAAa;E7CqhKrB;E6CpiKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7CohK5B;E6CxiKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EH+5J/B;AACF;;AchlKI;E+BmCA;IACE,uBAAmB;IAAnB,mBAAmB;E7CijKvB;E6CljKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7CgjK1C;E6CtjKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7C+iK5C;E6C1jKE;IAeM,aAAa;E7C8iKrB;E6C7jKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7C6iK5B;E6CjkKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EHw7J/B;AACF;;AczmKI;E+BmCA;IACE,uBAAmB;IAAnB,mBAAmB;E7C0kKvB;E6C3kKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7CykK1C;E6C/kKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7CwkK5C;E6CnlKE;IAeM,aAAa;E7CukKrB;E6CtlKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7CskK5B;E6C1lKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EHi9J/B;AACF;;AcloKI;E+BmCA;IACE,uBAAmB;IAAnB,mBAAmB;E7CmmKvB;E6CpmKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7CkmK1C;E6CxmKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7CimK5C;E6C5mKE;IAeM,aAAa;E7CgmKrB;E6C/mKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7C+lK5B;E6CnnKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EH0+J/B;AACF;;A6CllKA;EnCnHI,gBmCoHsB;A7CqlK1B;;A6CtlKA;EAII,qB1CmG6B;AHm/JjC;;A6C1lKA;EAOM,sBAAsB;A7CulK5B;;A8ChuKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB+nKlE;;AKxtKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9CmuKjD;;A8C1uKE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlB0oKlE;;A8ChvKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB+oKlE;;AKxuKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9CmvKjD;;A8C1vKE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlB0pKlE;;A8ChwKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB+pKlE;;AKxvKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9CmwKjD;;A8C1wKE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlB0qKlE;;A8ChxKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB+qKlE;;AKxwKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9CmxKjD;;A8C1xKE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlB0rKlE;;A8ChyKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB+rKlE;;AKxxKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9CmyKjD;;A8C1yKE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlB0sKlE;;A8ChzKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB+sKlE;;AKxyKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9CmzKjD;;A8C1zKE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlB0tKlE;;A8Ch0KE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB+tKlE;;AKxzKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9Cm0KjD;;A8C10KE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlB0uKlE;;A8Ch1KE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB+uKlE;;AKx0KE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9Cm1KjD;;A8C11KE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlB0vKlE;;A+Cn2KA;EACE,YAAY;E3C8HR,iBAtCY;E2CtFhB,gB5C6R+B;E4C5R/B,cAAc;EACd,W5CYa;E4CXb,yB5CCa;E4CAb,WAAW;A/Cs2Kb;;AKj2KE;E0CDE,W5CMW;E4CLX,qBAAqB;A/Cs2KzB;;AKl2KE;E0CCI,YAAY;A/Cq2KlB;;A+C11KA;EACE,UAAU;EACV,6BAA6B;EAC7B,SAAS;A/C61KX;;A+Cv1KA;EACE,oBAAoB;A/C01KtB;;AgDh4KA;EAGE,8B7Cq4BuC;E6Cr4BvC,iB7Cq4BuC;E6Cp4BvC,gB7Co4BuC;ECzwBnC,mBAtCY;E4ClFhB,2C7CAa;E6CCb,4BAA4B;EAC5B,oC7Cs4BmD;E6Cr4BnD,gD7COa;E6CNb,UAAU;EtCOR,sBP83BsC;AH4/I1C;;AgD54KA;EAeI,sB7C03BsC;AHugJ1C;;AgDh5KA;EAmBI,UAAU;AhDi4Kd;;AgDp5KA;EAuBI,cAAc;EACd,UAAU;AhDi4Kd;;AgDz5KA;EA4BI,aAAa;AhDi4KjB;;AgD73KA;EACE,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,wB7Cs2BwC;E6Cr2BxC,c7CvBgB;E6CwBhB,2C7C9Ba;E6C+Bb,4BAA4B;EAC5B,4C7C82BoD;EO13BlD,2CQmH4D;ERlH5D,4CQkH4D;AlB2xKhE;;AgD93KA;EACE,gB7C61BwC;AHoiJ1C;;AiDv6KA;EAEE,gBAAgB;AjDy6KlB;;AiD36KA;EAKI,kBAAkB;EAClB,gBAAgB;AjD06KpB;;AiDr6KA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,a9C2pBsC;E8C1pBtC,aAAa;EACb,WAAW;EACX,YAAY;EACZ,gBAAgB;EAGhB,UAAU;AjDs6KZ;;AiD/5KA;EACE,kBAAkB;EAClB,WAAW;EACX,c9C24BuC;E8Cz4BvC,oBAAoB;AjDi6KtB;;AiD95KE;E7B3BI,2CjBg8BoD;EiBh8BpD,mCjBg8BoD;EiBh8BpD,oEjBg8BoD;E8Cn6BtD,sC9Ci6BmD;E8Cj6BnD,8B9Ci6BmD;AHggJvD;;AoB17KM;E6BuBJ;I7BtBM,gBAAgB;EpB87KtB;AACF;;AiDr6KE;EACE,uB9C+5BoC;E8C/5BpC,e9C+5BoC;AHygJxC;;AiDp6KE;EACE,8B9C45B2C;E8C55B3C,sB9C45B2C;AH2gJ/C;;AiDn6KA;EACE,oBAAa;EAAb,aAAa;EACb,6B/BmF8D;AlBm1KhE;;AiDx6KA;EAKI,8B/BgF4D;E+B/E5D,gBAAgB;AjDu6KpB;;AiD76KA;;EAWI,oBAAc;EAAd,cAAc;AjDu6KlB;;AiDl7KA;EAeI,gBA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E+CzxBnC,yB/CrDS;AHmsLf;;AkDzoLA;EACE,iB/CmxBuC;AHy3JzC;;AkD7oLA;EAII,QAAQ;EACR,a/C+wBqC;E+C9wBrC,c/C6wBqC;AHg4JzC;;AkDnpLA;EASM,OAAO;EACP,oC/C0wBmC;E+CzwBnC,uB/CrES;AHmtLf;;AkDznLA;EACE,gB/CyuBuC;E+CxuBvC,uB/C8uBuC;E+C7uBvC,W/CvGa;E+CwGb,kBAAkB;EAClB,sB/C/Fa;EOCX,sBP6NgC;AH8/KpC;;AoD7uLA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,ajD6qBsC;EiD5qBtC,cAAc;EACd,gBjDy2BuC;EgD92BvC,kMhDmRiN;EgDjRjN,kBAAkB;EAClB,gBhD2R+B;EgD1R/B,gBhD+R+B;EgD9R/B,gBAAgB;EAChB,iBAAiB;EACjB,qBAAqB;EACrB,iBAAiB;EACjB,oBAAoB;EACpB,sBAAsB;EACtB,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,gBAAgB;E/CgHZ,mBAtCY;EgD7EhB,qBAAqB;EACrB,sBjDNa;EiDOb,4BAA4B;EAC5B,oCjDEa;EOCX,qBP8N+B;AH0hLnC;;AoD1wLA;EAoBI,kBAAkB;EAClB,cAAc;EACd,WjDy2BoC;EiDx2BpC,cjDy2BqC;EiDx2BrC,gBjDwN+B;AHkiLnC;;AoDlxLA;EA4BM,kBAAkB;EAClB,cAAc;EACd,WAAW;EACX,yBAAyB;EACzB,mBAAmB;ApD0vLzB;;AoDrvLA;EACE,qBjD01BuC;AH85JzC;;AoDzvLA;EAII,2BlCqG4D;AlBopLhE;;AoD7vLA;EAOM,SAAS;EACT,6BAAgE;EAChE,qCjDq1BiE;AHq6JvE;;AoDnwLA;EAaM,WjD0L2B;EiDzL3B,6BAAgE;EAChE,sBjD7CS;AHuyLf;;AoDrvLA;EACE,mBjDs0BuC;AHk7JzC;;AoDzvLA;EAII,yBlCiF4D;EkChF5D,ajDk0BqC;EiDj0BrC,YjDg0BoC;EiD/zBpC,gBAAgC;ApDyvLpC;;AoDhwLA;EAUM,OAAO;EACP,oCAA2F;EAC3F,uCjD8zBiE;AH47JvE;;AoDtwLA;EAgBM,SjDmK2B;EiDlK3B,oCAA2F;EAC3F,wBjDpES;AH8zLf;;AoDrvLA;EACE,kBjD+yBuC;AHy8JzC;;AoDzvLA;EAII,wBlC0D4D;AlB+rLhE;;AoD7vLA;EAOM,MAAM;EACN,oCAA2F;EAC3F,wCjD0yBiE;AHg9JvE;;AoDnwLA;EAaM,QjD+I2B;EiD9I3B,oCAA2F;EAC3F,yBjDxFS;AHk1Lf;;AoDzwLA;EAqBI,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,cAAc;EACd,WjDsxBoC;EiDrxBpC,oBAAsC;EACtC,WAAW;EACX,gCjD0wBuD;AH8+J3D;;AoDpvLA;EACE,oBjD+wBuC;AHw+JzC;;AoDxvLA;EAII,0BlC0B4D;EkCzB5D,ajD2wBqC;EiD1wBrC,YjDywBoC;EiDxwBpC,gBAAgC;ApDwvLpC;;AoD/vLA;EAUM,QAAQ;EACR,oCjDqwBmC;EiDpwBnC,sCjDuwBiE;AHk/JvE;;AoDrwLA;EAgBM,UjD4G2B;EiD3G3B,oCjD+vBmC;EiD9vBnC,uBjD3HS;AHo3Lf;;AoDnuLA;EACE,uBjDguBwC;EiD/tBxC,gBAAgB;EhD3BZ,eAtCY;EgDoEhB,yBjDytByD;EiDxtBzD,gCAAyE;E1CnIvE,0CQmH4D;ERlH5D,2CQkH4D;AlBuvLhE;;AoD7uLA;EAUI,aAAa;ApDuuLjB;;AoDnuLA;EACE,uBjDktBwC;EiDjtBxC,cjDxJgB;AH83LlB;;AqDj4LA;EACE,kBAAkB;ArDo4LpB;;AqDj4LA;EACE,uBAAmB;EAAnB,mBAAmB;ArDo4LrB;;AqDj4LA;EACE,kBAAkB;EAClB,WAAW;EACX,gBAAgB;ArDo4LlB;;AsD35LE;EACE,cAAc;EACd,WAAW;EACX,WAAW;AtD85Lf;;AqDt4LA;EACE,kBAAkB;EAClB,aAAa;EACb,WAAW;EACX,WAAW;EACX,mBAAmB;EACnB,mCAA2B;EAA3B,2BAA2B;EjClBvB,8CjBqjCkF;EiBrjClF,sCjBqjCkF;EiBrjClF,0EjBqjCkF;AHu2JxF;;AoBx5LM;EiCQN;IjCPQ,gBAAgB;EpB45LtB;AACF;;AqD54LA;;;EAGE,cAAc;ArD+4LhB;;AqD54LA;;EAEE,mCAA2B;EAA3B,2BAA2B;A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4pMtD;;AyDlqME;EACE,oCAAmC;AzDqqMvC;;AK3pME;;;EoDLI,oCAAgD;AzDsqMtD;;AyD5qME;EACE,oCAAmC;AzD+qMvC;;AKrqME;;;EoDLI,oCAAgD;AzDgrMtD;;AyDtrME;EACE,oCAAmC;AzDyrMvC;;AK/qME;;;EoDLI,oCAAgD;AzD0rMtD;;AyDhsME;EACE,oCAAmC;AzDmsMvC;;AKzrME;;;EoDLI,oCAAgD;AzDosMtD;;AyD1sME;EACE,oCAAmC;AzD6sMvC;;AKnsME;;;EoDLI,oCAAgD;AzD8sMtD;;AyDptME;EACE,oCAAmC;AzDutMvC;;AK7sME;;;EoDLI,oCAAgD;AzDwtMtD;;A0DvtMA;EACE,iCAAmC;A1D0tMrC;;A0DvtMA;EACE,wCAAwC;A1D0tM1C;;A2DruMA;EAAkB,oCAAoD;A3DyuMtE;;A2DxuMA;EAAkB,wCAAwD;A3D4uM1E;;A2D3uMA;EAAkB,0CAA0D;A3D+uM5E;;A2D9uMA;EAAkB,2CAA2D;A3DkvM7E;;A2DjvMA;EAAkB,yCAAyD;A3DqvM3E;;A2DnvMA;EAAmB,oBAAoB;A3DuvMvC;;A2DtvMA;EAAmB,wBAAwB;A3D0vM3C;;A2DzvMA;EAAmB,0BAA0B;A3D6vM7C;;A2D5vMA;EAAmB,2BAA2B;A3DgwM9C;;A2D/vMA;EAAmB,yBAAyB;A3DmwM5C;;A2DhwME;EACE,gCAA+B;A3DmwMnC;;A2DpwME;EACE,gCAA+B;A3DuwMnC;;A2DxwME;EACE,gCAA+B;A3D2wMnC;;A2D5wME;EACE,gCAA+B;A3D+wMnC;;A2DhxME;EACE,gCAA+B;A3DmxMnC;;A2DpxME;EACE,gCAA+B;A3DuxMnC;;A2DxxME;EACE,gCAA+B;A3D2xMnC;;A2D5xME;EACE,gCAA+B;A3D+xMnC;;A2D3xMA;EACE,6BAA+B;A3D8xMjC;;A2DvxMA;EACE,gCAA2C;A3D0xM7C;;A2DvxMA;EACE,iCAAwC;A3D0xM1C;;A2DvxMA;EACE,0CAAiD;EACjD,2CAAkD;A3D0xMpD;;A2DvxMA;EACE,2CAAkD;EAClD,8CAAqD;A3D0xMvD;;A2DvxMA;EACE,8CAAqD;EACrD,6CAAoD;A3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lD;;AuE92OQ;;EAEE,iCAA0C;AvEi3OpD;;AuE/2OQ;;EAEE,+BAAsC;AvEk3OhD;;AuEj4OQ;EAAgC,yBAA4B;AvEq4OpE;;AuEp4OQ;;EAEE,6BAAoC;AvEu4O9C;;AuEr4OQ;;EAEE,+BAAwC;AvEw4OlD;;AuEt4OQ;;EAEE,gCAA0C;AvEy4OpD;;AuEv4OQ;;EAEE,8BAAsC;AvE04OhD;;AuEz5OQ;EAAgC,uBAA4B;AvE65OpE;;AuE55OQ;;EAEE,2BAAoC;AvE+5O9C;;AuE75OQ;;EAEE,6BAAwC;AvEg6OlD;;AuE95OQ;;EAEE,8BAA0C;AvEi6OpD;;AuE/5OQ;;EAEE,4BAAsC;AvEk6OhD;;AuEj7OQ;EAAgC,yBAA4B;AvEq7OpE;;AuEp7OQ;;EAEE,6BAAoC;AvEu7O9C;;AuEr7OQ;;EAEE,+BAAwC;AvEw7OlD;;AuEt7OQ;;EAEE,gCAA0C;AvEy7OpD;;AuEv7OQ;;EAEE,8BAAsC;AvE07OhD;;AuEz8OQ;EAAgC,uBAA4B;AvE68OpE;;AuE58OQ;;EAEE,2BAAoC;AvE+8O9C;;AuE78OQ;;EAEE,6BAAwC;AvEg9OlD;;AuE98OQ;;EAEE,8BAA0C;AvEi9OpD;;AuE/8OQ;;EAEE,4BAAsC;AvEk9OhD;;AuEj+OQ;EAAgC,qBAA4B;AvEq+OpE;;AuEp+OQ;;EAEE,yBAAoC;AvEu+O9C;;AuEr+OQ;;EAEE,2BAAwC;AvEw+OlD;;AuEt+OQ;;EAEE,4BAA0C;AvEy+OpD;;AuEv+OQ;;EAEE,0BAAsC;AvE0+OhD;;AuEz/OQ;EAAgC,2BAA4B;AvE6/OpE;;AuE5/OQ;;EAEE,+BAAoC;AvE+/O9C;;AuE7/OQ;;EAEE,iCAAwC;AvEggPlD;;AuE9/OQ;;EAEE,kCAA0C;AvEigPpD;;AuE//OQ;;EAEE,gCAAsC;AvEkgPhD;;AuEjhPQ;EAAgC,0BAA4B;AvEqhPpE;;AuEphPQ;;EAEE,8BAAoC;AvEuhP9C;;AuErhPQ;;EAEE,gCAAwC;AvEwhPlD;;AuEthPQ;;EAEE,iCAA0C;AvEyhPpD;;AuEvhPQ;;EAEE,+BAAsC;AvE0hPhD;;AuEziPQ;EAAgC,wBAA4B;AvE6iPpE;;AuE5iPQ;;EAEE,4BAAoC;AvE+iP9C;;AuE7iPQ;;EAEE,8BAAwC;AvEgjPlD;;AuE9iPQ;;EAEE,+BAA0C;AvEijPpD;;AuE/iPQ;;EAEE,6BAAsC;AvEkjPhD;;AuEjkPQ;EAAgC,0BAA4B;AvEqkPpE;;AuEpkPQ;;EAEE,8BAAoC;AvEukP9C;;AuErkPQ;;EAEE,gCAAwC;AvEwkPlD;;AuEtkPQ;;EAEE,iCAA0C;AvEykPpD;;AuEvkPQ;;EAEE,+BAAsC;AvE0kPhD;;AuEzlPQ;EAAgC,wBAA4B;AvE6lPpE;;AuE5lPQ;;EAEE,4BAAoC;AvE+lP9C;;AuE7lPQ;;EAEE,8BAAwC;AvEgmPlD;;AuE9lPQ;;EAEE,+BAA0C;AvEimPpD;;AuE/lPQ;;EAEE,6BAAsC;AvEkmPhD;;AuE1lPQ;EAAwB,2BAA2B;AvE8lP3D;;AuE7lPQ;;EAEE,+BAA+B;AvEgmPzC;;AuE9lPQ;;EAEE,iCAAiC;AvEimP3C;;AuE/lPQ;;EAEE,kCAAkC;AvEkmP5C;;AuEhmPQ;;EAEE,gCAAgC;AvEmmP1C;;AuElnPQ;EAAwB,0BAA2B;AvEsnP3D;;AuErnPQ;;EAEE,8BAA+B;AvEwnPzC;;AuEtnPQ;;EAEE,gCAAiC;AvEynP3C;;AuEvnPQ;;EAEE,iCAAkC;AvE0nP5C;;AuExnPQ;;EAEE,+BAAgC;AvE2nP1C;;AuE1oPQ;EAAwB,wBAA2B;AvE8oP3D;;AuE7oPQ;;EAEE,4BAA+B;AvEgpPzC;;AuE9oPQ;;EAEE,8BAAiC;AvEipP3C;;AuE/oPQ;;EAEE,+BAAkC;AvEkpP5C;;AuEhpPQ;;EAEE,6BAAgC;AvEmpP1C;;AuElqPQ;EAAwB,0BAA2B;AvEsqP3D;;AuErqPQ;;EAEE,8BAA+B;AvEwqPzC;;AuEtqPQ;;EAEE,gCAAiC;AvEyqP3C;;AuEvqPQ;;EAEE,iCAAkC;AvE0qP5C;;AuExqPQ;;EAEE,+BAAgC;AvE2qP1C;;AuE1rPQ;EAAwB,wBAA2B;AvE8rP3D;;AuE7rPQ;;EAEE,4BAA+B;AvEgsPzC;;AuE9rPQ;;EAEE,8BAAiC;AvEisP3C;;AuE/rPQ;;EAEE,+BAAkC;AvEksP5C;;AuEhsPQ;;EAEE,6BAAgC;AvEmsP1C;;AuE7rPI;EAAmB,uBAAuB;AvEisP9C;;AuEhsPI;;EAEE,2BAA2B;AvEmsPjC;;AuEjsPI;;EAEE,6BAA6B;AvEosPnC;;AuElsPI;;EAEE,8BAA8B;AvEqsPpC;;AuEnsPI;;EAEE,4BAA4B;AvEssPlC;;Ac/sPI;EyDlDI;IAAgC,oBAA4B;EvEswPlE;EuErwPM;;IAEE,wBAAoC;EvEuwP5C;EuErwPM;;IAEE,0BAAwC;EvEuwPhD;EuErwPM;;IAEE,2BAA0C;EvEuwPlD;EuErwPM;;IAEE,yBAAsC;EvEuwP9C;EuEtxPM;IAAgC,0BAA4B;EvEyxPlE;EuExxPM;;IAEE,8BAAoC;EvE0xP5C;EuExxPM;;IAEE,gCAAwC;EvE0xPhD;EuExxPM;;IAEE,iCAA0C;EvE0xPlD;EuExxPM;;IAEE,+BAAsC;EvE0xP9C;EuEzyPM;IAAgC,yBAA4B;EvE4yPlE;EuE3yPM;;IAEE,6BAAoC;EvE6yP5C;EuE3yPM;;IAEE,+BAAwC;EvE6yPhD;EuE3yPM;;IAEE,gCAA0C;EvE6yPlD;EuE3yPM;;IAEE,8BAAsC;EvE6yP9C;EuE5zPM;IAAgC,uBAA4B;EvE+zPlE;EuE9zPM;;IAEE,2BAAoC;EvEg0P5C;EuE9zPM;;IAEE,6BAAwC;EvEg0PhD;EuE9zPM;;IAEE,8BAA0C;EvEg0PlD;EuE9zPM;;IAEE,4BAAsC;EvEg0P9C;EuE/0PM;IAAgC,yBAA4B;EvEk1PlE;EuEj1PM;;IAEE,6BAAoC;EvEm1P5C;EuEj1PM;;IAEE,+BAAwC;EvEm1PhD;EuEj1PM;;IAEE,gCAA0C;EvEm1PlD;EuEj1PM;;IAEE,8BAAsC;EvEm1P9C;EuEl2PM;IAAgC,uBAA4B;EvEq2PlE;EuEp2PM;;IAEE,2BAAoC;EvEs2P5C;EuEp2PM;;IAEE,6BAAwC;EvEs2PhD;EuEp2PM;;IAEE,8BAA0C;EvEs2PlD;EuEp2PM;;IAEE,4BAAsC;EvEs2P9C;EuEr3PM;IAAgC,qBAA4B;EvEw3PlE;EuEv3PM;;IAEE,yBAAoC;EvEy3P5C;EuEv3PM;;IAEE,2BAAwC;EvEy3PhD;EuEv3PM;;IAEE,4BAA0C;EvEy3PlD;EuEv3PM;;IAEE,0BAAsC;EvEy3P9C;EuEx4PM;IAAgC,2BAA4B;EvE24PlE;EuE14PM;;IAEE,+BAAoC;EvE44P5C;EuE14PM;;IAEE,iCAAwC;EvE44PhD;EuE14PM;;IAEE,kCAA0C;EvE44PlD;EuE14PM;;IAEE,gCAAsC;EvE44P9C;EuE35PM;IAAgC,0BAA4B;EvE85PlE;EuE75PM;;IAEE,8BAAoC;EvE+5P5C;EuE75PM;;IAEE,gCAAwC;EvE+5PhD;EuE75PM;;IAEE,iCAA0C;EvE+5PlD;EuE75PM;;IAEE,+BAAsC;EvE+5P9C;EuE96PM;IAAgC,wBAA4B;EvEi7PlE;EuEh7PM;;IAEE,4BAAoC;EvEk7P5C;EuEh7PM;;IAEE,8BAAwC;EvEk7PhD;EuEh7PM;;IAEE,+BAA0C;EvEk7PlD;EuEh7PM;;IAEE,6BAAsC;EvEk7P9C;EuEj8PM;IAAgC,0BAA4B;EvEo8PlE;EuEn8PM;;IAEE,8BAAoC;EvEq8P5C;EuEn8PM;;IAEE,gCAAwC;EvEq8PhD;EuEn8PM;;IAEE,iCAA0C;EvEq8PlD;EuEn8PM;;IAEE,+BAAsC;EvEq8P9C;EuEp9PM;IAAgC,wBAA4B;EvEu9PlE;EuEt9PM;;IAEE,4BAAoC;EvEw9P5C;EuEt9PM;;IAEE,8BAAwC;EvEw9PhD;EuEt9PM;;IAEE,+BAA0C;EvEw9PlD;EuEt9PM;;IAEE,6BAAsC;EvEw9P9C;EuEh9PM;IAAwB,2BAA2B;EvEm9PzD;EuEl9PM;;IAEE,+BAA+B;EvEo9PvC;EuEl9PM;;IAEE,iCAAiC;EvEo9PzC;EuEl9PM;;IAEE,kCAAkC;EvEo9P1C;EuEl9PM;;IAEE,gCAAgC;EvEo9PxC;EuEn+PM;IAAwB,0BAA2B;EvEs+PzD;EuEr+PM;;IAEE,8BAA+B;EvEu+PvC;EuEr+PM;;IAEE,gCAAiC;EvEu+PzC;EuEr+PM;;IAEE,iCAAkC;EvEu+P1C;EuEr+PM;;IAEE,+BAAgC;EvEu+PxC;EuEt/PM;IAAwB,wBAA2B;EvEy/PzD;EuEx/PM;;IAEE,4BAA+B;EvE0/PvC;EuEx/PM;;IAEE,8BAAiC;EvE0/PzC;EuEx/PM;;IAEE,+BAAkC;EvE0/P1C;EuEx/PM;;IAEE,6BAAgC;EvE0/PxC;EuEzgQM;IAAwB,0BAA2B;EvE4gQzD;EuE3gQM;;IAEE,8BAA+B;EvE6gQvC;EuE3gQM;;IAEE,gCAAiC;EvE6gQzC;EuE3gQM;;IAEE,iCAAkC;EvE6gQ1C;EuE3gQM;;IAEE,+BAAgC;EvE6gQxC;EuE5hQM;IAAwB,wBAA2B;EvE+hQzD;EuE9hQM;;IAEE,4BAA+B;EvEgiQvC;EuE9hQM;;IAEE,8BAAiC;EvEgiQzC;EuE9hQM;;IAEE,+BAAkC;EvEgiQ1C;EuE9hQM;;IAEE,6BAAgC;EvEgiQxC;EuE1hQE;IAAmB,uBAAuB;EvE6hQ5C;EuE5hQE;;IAEE,2BAA2B;EvE8hQ/B;EuE5hQE;;IAEE,6BAA6B;EvE8hQjC;EuE5hQE;;IAEE,8BAA8B;EvE8hQlC;EuE5hQE;;IAEE,4BAA4B;EvE8hQhC;AACF;;AcxiQI;EyDlDI;IAAgC,oBAA4B;EvE+lQlE;EuE9lQM;;IAEE,wBAAoC;EvEgmQ5C;EuE9lQM;;IAEE,0BAAwC;EvEgmQhD;EuE9lQM;;IAEE,2BAA0C;EvEgmQlD;EuE9lQM;;IAEE,yBAAsC;EvEgmQ9C;EuE/mQM;IAAgC,0BAA4B;EvEknQlE;EuEjnQM;;IAEE,8BAAoC;EvEmnQ5C;EuEjnQM;;IAEE,gCAAwC;EvEmnQhD;EuEjnQM;;IAEE,iCAA0C;EvEmnQlD;EuEjnQM;;IAEE,+BAAsC;EvEmnQ9C;EuEloQM;IAAgC,yBAA4B;EvEqoQlE;EuEpoQM;;IAEE,6BAAoC;EvEsoQ5C;EuEpoQM;;IAEE,+BAAwC;EvEsoQhD;EuEpoQM;;IAEE,gCAA0C;EvEsoQlD;EuEpoQM;;IAEE,8BAAsC;EvEsoQ9C;EuErpQM;IAAgC,uBAA4B;EvEwpQlE;EuEvpQM;;IAEE,2BAAoC;EvEypQ5C;EuEvpQM;;IAEE,6BAAwC;EvEypQhD;EuEvpQM;;IAEE,8BAA0C;EvEypQlD;EuEvpQM;;IAEE,4BAAsC;EvEypQ9C;EuExqQM;IAAgC,yBAA4B;EvE2qQlE;EuE1qQM;;IAEE,6BAAoC;EvE4qQ5C;EuE1qQM;;IAEE,+BAAwC;EvE4qQhD;EuE1qQM;;IAEE,gCAA0C;EvE4qQlD;EuE1qQM;;IAEE,8BAAsC;EvE4qQ9C;EuE3rQM;IAAgC,uBAA4B;EvE8rQlE;EuE7rQM;;IAEE,2BAAoC;EvE+rQ5C;EuE7rQM;;IAEE,6BAAwC;EvE+rQhD;EuE7rQM;;IAEE,8BAA0C;EvE+rQlD;EuE7rQM;;IAEE,4BAAsC;EvE+rQ9C;EuE9sQM;IAAgC,qBAA4B;EvEitQlE;EuEhtQM;;IAEE,yBAAoC;EvEktQ5C;EuEhtQM;;IAEE,2BAAwC;EvEktQhD;EuEhtQM;;IAEE,4BAA0C;EvEktQlD;EuEhtQM;;IAEE,0BAAsC;EvEktQ9C;EuEjuQM;IAAgC,2BAA4B;EvEouQlE;EuEnuQM;;IAEE,+BAAoC;EvEquQ5C;EuEnuQM;;IAEE,iCAAwC;EvEquQhD;EuEnuQM;;IAEE,kCAA0C;EvEquQlD;EuEnuQM;;IAEE,gCAAsC;EvEquQ9C;EuEpvQM;IAAgC,0BAA4B;EvEuvQlE;EuEtvQM;;IAEE,8BAAoC;EvEwvQ5C;EuEtvQM;;IAEE,gCAAwC;EvEwvQhD;EuEtvQM;;IAEE,iCAA0C;EvEwvQlD;EuEtvQM;;IAEE,+BAAsC;EvEwvQ9C;EuEvwQM;IAAgC,wBAA4B;EvE0wQlE;EuEzwQM;;IAEE,4BAAoC;EvE2wQ5C;EuEzwQM;;IAEE,8BAAwC;EvE2wQhD;EuEzwQM;;IAEE,+BAA0C;EvE2wQlD;EuEzwQM;;IAEE,6BAAsC;EvE2wQ9C;EuE1xQM;IAAgC,0BAA4B;EvE6xQlE;EuE5xQM;;IAEE,8BAAoC;EvE8xQ5C;EuE5xQM;;IAEE,gCAAwC;EvE8xQhD;EuE5xQM;;IAEE,iCAA0C;EvE8xQlD;EuE5xQM;;IAEE,+BAAsC;EvE8xQ9C;EuE7yQM;IAAgC,wBAA4B;EvEgzQlE;EuE/yQM;;IAEE,4BAAoC;EvEizQ5C;EuE/yQM;;IAEE,8BAAwC;EvEizQhD;EuE/yQM;;IAEE,+BAA0C;EvEizQlD;EuE/yQM;;IAEE,6BAAsC;EvEizQ9C;EuEzyQM;IAAwB,2BAA2B;EvE4yQzD;EuE3yQM;;IAEE,+BAA+B;EvE6yQvC;EuE3yQM;;IAEE,iCAAiC;EvE6yQzC;EuE3yQM;;IAEE,kCAAkC;EvE6yQ1C;EuE3yQM;;IAEE,gCAAgC;EvE6yQxC;EuE5zQM;IAAwB,0BAA2B;EvE+zQzD;EuE9zQM;;IAEE,8BAA+B;EvEg0QvC;EuE9zQM;;IAEE,gCAAiC;EvEg0QzC;EuE9zQM;;IAEE,iCAAkC;EvEg0Q1C;EuE9zQM;;IAEE,+BAAgC;EvEg0QxC;EuE/0QM;IAAwB,wBAA2B;EvEk1QzD;EuEj1QM;;IAEE,4BAA+B;EvEm1QvC;EuEj1QM;;IAEE,8BAAiC;EvEm1QzC;EuEj1QM;;IAEE,+BAAkC;EvEm1Q1C;EuEj1QM;;IAEE,6BAAgC;EvEm1QxC;EuEl2QM;IAAwB,0BAA2B;EvEq2QzD;EuEp2QM;;IAEE,8BAA+B;EvEs2QvC;EuEp2QM;;IAEE,gCAAiC;EvEs2QzC;EuEp2QM;;IAEE,iCAAkC;EvEs2Q1C;EuEp2QM;;IAEE,+BAAgC;EvEs2QxC;EuEr3QM;IAAwB,wBAA2B;EvEw3QzD;EuEv3QM;;IAEE,4BAA+B;EvEy3QvC;EuEv3QM;;IAEE,8BAAiC;EvEy3QzC;EuEv3QM;;IAEE,+BAAkC;EvEy3Q1C;EuEv3QM;;IAEE,6BAAgC;EvEy3QxC;EuEn3QE;IAAmB,uBAAuB;EvEs3Q5C;EuEr3QE;;IAEE,2BAA2B;EvEu3Q/B;EuEr3QE;;IAEE,6BAA6B;EvEu3QjC;EuEr3QE;;IAEE,8BAA8B;EvEu3QlC;EuEr3QE;;IAEE,4BAA4B;EvEu3QhC;AACF;;Acj4QI;EyDlDI;IAAgC,oBAA4B;EvEw7QlE;EuEv7QM;;IAEE,wBAAoC;EvEy7Q5C;EuEv7QM;;IAEE,0BAAwC;EvEy7QhD;EuEv7QM;;IAEE,2BAA0C;EvEy7QlD;EuEv7QM;;IAEE,yBAAsC;EvEy7Q9C;EuEx8QM;IAAgC,0BAA4B;EvE28QlE;EuE18QM;;IAEE,8BAAoC;EvE48Q5C;EuE18QM;;IAEE,gCAAwC;EvE48QhD;EuE18QM;;IAEE,iCAA0C;EvE48QlD;EuE18QM;;IAEE,+BAAsC;EvE48Q9C;EuE39QM;IAAgC,yBAA4B;EvE89QlE;EuE79QM;;IAEE,6BAAoC;EvE+9Q5C;EuE79QM;;IAEE,+BAAwC;EvE+9QhD;EuE79QM;;IAEE,gCAA0C;EvE+9QlD;EuE79QM;;IAEE,8BAAsC;EvE+9Q9C;EuE9+QM;IAAgC,uBAA4B;EvEi/QlE;EuEh/QM;;IAEE,2BAAoC;EvEk/Q5C;EuEh/QM;;IAEE,6BAAwC;EvEk/QhD;EuEh/QM;;IAEE,8BAA0C;EvEk/QlD;EuEh/QM;;IAEE,4BAAsC;EvEk/Q9C;EuEjgRM;IAAgC,yBAA4B;EvEogRlE;EuEngRM;;IAEE,6BAAoC;EvEqgR5C;EuEngRM;;IAEE,+BAAwC;EvEqgRhD;EuEngRM;;IAEE,gCAA0C;EvEqgRlD;EuEngRM;;IAEE,8BAAsC;EvEqgR9C;EuEphRM;IAAgC,uBAA4B;EvEuhRlE;EuEthRM;;IAEE,2BAAoC;EvEwhR5C;EuEthRM;;IAEE,6BAAwC;EvEwhRhD;EuEthRM;;IAEE,8BAA0C;EvEwhRlD;EuEthRM;;IAEE,4BAAsC;EvEwhR9C;EuEviRM;IAAgC,qBAA4B;EvE0iRlE;EuEziRM;;IAEE,yBAAoC;EvE2iR5C;EuEziRM;;IAEE,2BAAwC;EvE2iRhD;EuEziRM;;IAEE,4BAA0C;EvE2iRlD;EuEziRM;;IAEE,0BAAsC;EvE2iR9C;EuE1jRM;IAAgC,2BAA4B;EvE6jRlE;EuE5jRM;;IAEE,+BAAoC;EvE8jR5C;EuE5jRM;;IAEE,iCAAwC;EvE8jRhD;EuE5jRM;;IAEE,kCAA0C;EvE8jRlD;EuE5jRM;;IAEE,gCAAsC;EvE8jR9C;EuE7kRM;IAAgC,0BAA4B;EvEglRlE;EuE/kRM;;IAEE,8BAAoC;EvEilR5C;EuE/kRM;;IAEE,gCAAwC;EvEilRhD;EuE/kRM;;IAEE,iCAA0C;EvEilRlD;EuE/kRM;;IAEE,+BAAsC;EvEilR9C;EuEhmRM;IAAgC,wBAA4B;EvEmmRlE;EuElmRM;;IAEE,4BAAoC;EvEomR5C;EuElmRM;;IAEE,8BAAwC;EvEomRhD;EuElmRM;;IAEE,+BAA0C;EvEomRlD;EuElmRM;;IAEE,6BAAsC;EvEomR9C;EuEnnRM;IAAgC,0BAA4B;EvEsnRlE;EuErnRM;;IAEE,8BAAoC;EvEunR5C;EuErnRM;;IAEE,gCAAwC;EvEunRhD;EuErnRM;;IAEE,iCAA0C;EvEunRlD;EuErnRM;;IAEE,+BAAsC;EvEunR9C;EuEtoRM;IAAgC,wBAA4B;EvEyoRlE;EuExoRM;;IAEE,4BAAoC;EvE0oR5C;EuExoRM;;IAEE,8BAAwC;EvE0oRhD;EuExoRM;;IAEE,+BAA0C;EvE0oRlD;EuExoRM;;IAEE,6BAAsC;EvE0oR9C;EuEloRM;IAAwB,2BAA2B;EvEqoRzD;EuEpoRM;;IAEE,+BAA+B;EvEsoRvC;EuEpoRM;;IAEE,iCAAiC;EvEsoRzC;EuEpoRM;;IAEE,kCAAkC;EvEsoR1C;EuEpoRM;;IAEE,gCAAgC;EvEsoRxC;EuErpRM;IAAwB,0BAA2B;EvEwpRzD;EuEvpRM;;IAEE,8BAA+B;EvEypRvC;EuEvpRM;;IAEE,gCAAiC;EvEypRzC;EuEvpRM;;IAEE,iCAAkC;EvEypR1C;EuEvpRM;;IAEE,+BAAgC;EvEypRxC;EuExqRM;IAAwB,wBAA2B;EvE2qRzD;EuE1qRM;;IAEE,4BAA+B;EvE4qRvC;EuE1qRM;;IAEE,8BAAiC;EvE4qRzC;EuE1qRM;;IAEE,+BAAkC;EvE4qR1C;EuE1qRM;;IAEE,6BAAgC;EvE4qRxC;EuE3rRM;IAAwB,0BAA2B;EvE8rRzD;EuE7rRM;;IAEE,8BAA+B;EvE+rRvC;EuE7rRM;;IAEE,gCAAiC;EvE+rRzC;EuE7rRM;;IAEE,iCAAkC;EvE+rR1C;EuE7rRM;;IAEE,+BAAgC;EvE+rRxC;EuE9sRM;IAAwB,wBAA2B;EvEitRzD;EuEhtRM;;IAEE,4BAA+B;EvEktRvC;EuEhtRM;;IAEE,8BAAiC;EvEktRzC;EuEhtRM;;IAEE,+BAAkC;EvEktR1C;EuEhtRM;;IAEE,6BAAgC;EvEktRxC;EuE5sRE;IAAmB,uBAAuB;EvE+sR5C;EuE9sRE;;IAEE,2BAA2B;EvEgtR/B;EuE9sRE;;IAEE,6BAA6B;EvEgtRjC;EuE9sRE;;IAEE,8BAA8B;EvEgtRlC;EuE9sRE;;IAEE,4BAA4B;EvEgtRhC;AACF;;Ac1tRI;EyDlDI;IAAgC,oBAA4B;EvEixRlE;EuEhxRM;;IAEE,wBAAoC;EvEkxR5C;EuEhxRM;;IAEE,0BAAwC;EvEkxRhD;EuEhxRM;;IAEE,2BAA0C;EvEkxRlD;EuEhxRM;;IAEE,yBAAsC;EvEkxR9C;EuEjyRM;IAAgC,0BAA4B;EvEoyRlE;EuEnyRM;;IAEE,8BAAoC;EvEqyR5C;EuEnyRM;;IAEE,gCAAwC;EvEqyRhD;EuEnyRM;;IAEE,iCAA0C;EvEqyRlD;EuEnyRM;;IAEE,+BAAsC;EvEqyR9C;EuEpzRM;IAAgC,yBAA4B;EvEuzRlE;EuEtzRM;;IAEE,6BAAoC;EvEwzR5C;EuEtzRM;;IAEE,+BAAwC;EvEwzRhD;EuEtzRM;;IAEE,gCAA0C;EvEwzRlD;EuEtzRM;;IAEE,8BAAsC;EvEwzR9C;EuEv0RM;IAAgC,uBAA4B;EvE00RlE;EuEz0RM;;IAEE,2BAAoC;EvE20R5C;EuEz0RM;;IAEE,6BAAwC;EvE20RhD;EuEz0RM;;IAEE,8BAA0C;EvE20RlD;EuEz0RM;;IAEE,4BAAsC;EvE20R9C;EuE11RM;IAAgC,yBAA4B;EvE61RlE;EuE51RM;;IAEE,6BAAoC;EvE81R5C;EuE51RM;;IAEE,+BAAwC;EvE81RhD;EuE51RM;;IAEE,gCAA0C;EvE81RlD;EuE51RM;;IAEE,8BAAsC;EvE81R9C;EuE72RM;IAAgC,uBAA4B;EvEg3RlE;EuE/2RM;;IAEE,2BAAoC;EvEi3R5C;EuE/2RM;;IAEE,6BAAwC;EvEi3RhD;EuE/2RM;;IAEE,8BAA0C;EvEi3RlD;EuE/2RM;;IAEE,4BAAsC;EvEi3R9C;EuEh4RM;IAAgC,qBAA4B;EvEm4RlE;EuEl4RM;;IAEE,yBAAoC;EvEo4R5C;EuEl4RM;;IAEE,2BAAwC;EvEo4RhD;EuEl4RM;;IAEE,4BAA0C;EvEo4RlD;EuEl4RM;;IAEE,0BAAsC;EvEo4R9C;EuEn5RM;IAAgC,2BAA4B;EvEs5RlE;EuEr5RM;;IAEE,+BAAoC;EvEu5R5C;EuEr5RM;;IAEE,iCAAwC;EvEu5RhD;EuEr5RM;;IAEE,kCAA0C;EvEu5RlD;EuEr5RM;;IAEE,gCAAsC;EvEu5R9C;EuEt6RM;IAAgC,0BAA4B;EvEy6RlE;EuEx6RM;;IAEE,8BAAoC;EvE06R5C;EuEx6RM;;IAEE,gCAAwC;EvE06RhD;EuEx6RM;;IAEE,iCAA0C;EvE06RlD;EuEx6RM;;IAEE,+BAAsC;EvE06R9C;EuEz7RM;IAAgC,wBAA4B;EvE47RlE;EuE37RM;;IAEE,4BAAoC;EvE67R5C;EuE37RM;;IAEE,8BAAwC;EvE67RhD;EuE37RM;;IAEE,+BAA0C;EvE67RlD;EuE37RM;;IAEE,6BAAsC;EvE67R9C;EuE58RM;IAAgC,0BAA4B;EvE+8RlE;EuE98RM;;IAEE,8BAAoC;EvEg9R5C;EuE98RM;;IAEE,gCAAwC;EvEg9RhD;EuE98RM;;IAEE,iCAA0C;EvEg9RlD;EuE98RM;;IAEE,+BAAsC;EvEg9R9C;EuE/9RM;IAAgC,wBAA4B;EvEk+RlE;EuEj+RM;;IAEE,4BAAoC;EvEm+R5C;EuEj+RM;;IAEE,8BAAwC;EvEm+RhD;EuEj+RM;;IAEE,+BAA0C;EvEm+RlD;EuEj+RM;;IAEE,6BAAsC;EvEm+R9C;EuE39RM;IAAwB,2BAA2B;EvE89RzD;EuE79RM;;IAEE,+BAA+B;EvE+9RvC;EuE79RM;;IAEE,iCAAiC;EvE+9RzC;EuE79RM;;IAEE,kCAAkC;EvE+9R1C;EuE79RM;;IAEE,gCAAgC;EvE+9RxC;EuE9+RM;IAAwB,0BAA2B;EvEi/RzD;EuEh/RM;;IAEE,8BAA+B;EvEk/RvC;EuEh/RM;;IAEE,gCAAiC;EvEk/RzC;EuEh/RM;;IAEE,iCAAkC;EvEk/R1C;EuEh/RM;;IAEE,+BAAgC;EvEk/RxC;EuEjgSM;IAAwB,wBAA2B;EvEogSzD;EuEngSM;;IAEE,4BAA+B;EvEqgSvC;EuEngSM;;IAEE,8BAAiC;EvEqgSzC;EuEngSM;;IAEE,+BAAkC;EvEqgS1C;EuEngSM;;IAEE,6BAAgC;EvEqgSxC;EuEphSM;IAAwB,0BAA2B;EvEuhSzD;EuEthSM;;IAEE,8BAA+B;EvEwhSvC;EuEthSM;;IAEE,gCAAiC;EvEwhSzC;EuEthSM;;IAEE,iCAAkC;EvEwhS1C;EuEthSM;;IAEE,+BAAgC;EvEwhSxC;EuEviSM;IAAwB,wBAA2B;EvE0iSzD;EuEziSM;;IAEE,4BAA+B;EvE2iSvC;EuEziSM;;IAEE,8BAAiC;EvE2iSzC;EuEziSM;;IAEE,+BAAkC;EvE2iS1C;EuEziSM;;IAEE,6BAAgC;EvE2iSxC;EuEriSE;IAAmB,uBAAuB;EvEwiS5C;EuEviSE;;IAEE,2BAA2B;EvEyiS/B;EuEviSE;;IAEE,6BAA6B;EvEyiSjC;EuEviSE;;IAEE,8BAA8B;EvEyiSlC;EuEviSE;;IAEE,4BAA4B;EvEyiShC;AACF;;AwE3mSA;EAEI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,UAAU;EAEV,oBAAoB;EACpB,WAAW;EAEX,kCAAkC;AxE2mStC;;AyErnSA;EAAkB,4GAA8C;AzEynShE;;AyErnSA;EAAiB,8BAA8B;AzEynS/C;;AyExnSA;EAAiB,8BAA8B;AzE4nS/C;;AyE3nSA;EAAiB,8BAA8B;AzE+nS/C;;AyE9nSA;ECTE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;A1E2oSrB;;AyE5nSI;EAAwB,2BAA2B;AzEgoSvD;;AyE/nSI;EAAwB,4BAA4B;AzEmoSxD;;AyEloSI;EAAwB,6BAA6B;AzEsoSzD;;AcjmSI;E2DvCA;IAAwB,2BAA2B;EzE6oSrD;EyE5oSE;IAAwB,4BAA4B;EzE+oStD;EyE9oSE;IAAwB,6BAA6B;EzEipSvD;AACF;;Ac7mSI;E2DvCA;IAAwB,2BAA2B;EzEypSrD;EyExpSE;IAAwB,4BAA4B;EzE2pStD;EyE1pSE;IAAwB,6BAA6B;EzE6pSvD;AACF;;AcznSI;E2DvCA;IAAwB,2BAA2B;EzEqqSrD;EyEpqSE;IAAwB,4BAA4B;EzEuqStD;EyEtqSE;IAAwB,6BAA6B;EzEyqSvD;AACF;;AcroSI;E2DvCA;IAAwB,2BAA2B;EzEirSrD;EyEhrSE;IAAwB,4BAA4B;EzEmrStD;EyElrSE;IAAwB,6BAA6B;EzEqrSvD;AACF;;AyEhrSA;EAAmB,oCAAoC;AzEorSvD;;AyEnrSA;EAAmB,oCAAoC;AzEurSvD;;AyEtrSA;EAAmB,qCAAqC;AzE0rSxD;;AyEtrSA;EAAuB,2BAA0C;AzE0rSjE;;AyEzrSA;EAAuB,+BAA4C;AzE6rSnE;;AyE5rSA;EAAuB,2BAA2C;AzEgsSlE;;AyE/rSA;EAAuB,2BAAyC;AzEmsShE;;AyElsSA;EAAuB,8BAA2C;AzEssSlE;;AyErsSA;EAAuB,6BAA6B;AzEysSpD;;AyErsSA;EAAc,sBAAwB;AzEysStC;;A2EhvSE;EACE,yBAAwB;A3EmvS5B;;AKzuSE;EsELM,yBAA0E;A3EkvSlF;;A2ExvSE;EACE,yBAAwB;A3E2vS5B;;AKjvSE;EsELM,yBAA0E;A3E0vSlF;;A2EhwSE;EACE,yBAAwB;A3EmwS5B;;AKzvSE;EsELM,yBAA0E;A3EkwSlF;;A2ExwSE;EACE,yBAAwB;A3E2wS5B;;AKjwSE;EsELM,yBAA0E;A3E0wSlF;;A2EhxSE;EACE,yBAAwB;A3EmxS5B;;AKzwSE;EsELM,yBAA0E;A3EkxSlF;;A2ExxSE;EACE,yBAAwB;A3E2xS5B;;AKjxSE;EsELM,yBAA0E;A3E0xSlF;;A2EhySE;EACE,yBAAwB;A3EmyS5B;;AKzxSE;EsELM,yBAA0E;A3EkySlF;;A2ExySE;EACE,yBAAwB;A3E2yS5B;;AKjySE;EsELM,yBAA0E;A3E0ySlF;;AyEnwSA;EAAa,yBAA6B;AzEuwS1C;;AyEtwSA;EAAc,yBAA6B;AzE0wS3C;;AyExwSA;EAAiB,oCAAkC;AzE4wSnD;;AyE3wSA;EAAiB,0CAAkC;AzE+wSnD;;AyE3wSA;EGvDE,WAAW;EACX,kBAAkB;EAClB,iBAAiB;EACjB,6BAA6B;EAC7B,SAAS;A5Es0SX;;AyE/wSA;EAAwB,gCAAgC;AzEmxSxD;;AyEjxSA;EACE,iCAAiC;EACjC,gCAAgC;AzEoxSlC;;AyE/wSA;EAAc,yBAAyB;AzEmxSvC;;A6Ep1SA;EACE,8BAA8B;A7Eu1ShC;;A6Ep1SA;EACE,6BAA6B;A7Eu1S/B;;A8Ev1SE;E5EOF;;;I4EDM,4BAA4B;IAE5B,2BAA2B;E9Eu1S/B;E8Ep1SE;IAEI,0BAA0B;E9Eq1ShC;E8E50SE;IACE,6BAA6B;E9E80SjC;EEhpSF;I4E/KM,gCAAgC;E9Ek0SpC;E8Eh0SE;;IAEE,yB3EzCY;I2E0CZ,wBAAwB;E9Ek0S5B;E8E1zSE;IACE,2BAA2B;E9E4zS/B;E8EzzSE;;IAEE,wBAAwB;E9E2zS5B;E8ExzSE;;;IAGE,UAAU;IACV,SAAS;E9E0zSb;E8EvzSE;;IAEE,uBAAuB;E9EyzS3B;E8EjzSE;IACE,Q3E2hCgC;EHwxQpC;EE/1SF;I4E+CM,2BAA2C;E9EmzS/C;E8EjzSE;IACE,2BAA2C;E9EmzS/C;EiCj4SF;I6CmFM,aAAa;E9EizSjB;EsCh5SF;IwCkGM,sB3EtFS;EHu4Sb;EgBp5SF;I8DuGM,oCAAoC;E9EgzSxC;E8EjzSE;;IAKI,iCAAmC;E9EgzSzC;EgBn3SF;;I8D0EQ,oCAAsC;E9E6yS5C;EgBlySF;I8DNM,cAAc;E9E2ySlB;EiBj6SA;;;;I6D4HM,qB3EvHU;EHk6ShB;EgB7zSF;I8DuBM,cAAc;IACd,qB3E7HY;EHs6ShB;AACF","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n","/*!\n * Bootstrap v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\ninput[type=\"date\"].form-control,\ninput[type=\"time\"].form-control,\ninput[type=\"datetime-local\"].form-control,\ninput[type=\"month\"].form-control {\n appearance: none;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n color-adjust: exact;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n}\n\n.card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n border-top: 0;\n}\n\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion {\n overflow-anchor: none;\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item {\n display: flex;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n line-height: 0;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: 0.25rem;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n}\n\n.list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n.list-group-flush {\n border-radius: 0;\n}\n\n.list-group-flush > .list-group-item {\n border-width: 0 0 1px;\n}\n\n.list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n flex-basis: 350px;\n max-width: 350px;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n height: min-content;\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n height: min-content;\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.user-select-all {\n user-select: all !important;\n}\n\n.user-select-auto {\n user-select: auto !important;\n}\n\n.user-select-none {\n user-select: none !important;\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n word-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// Do not forget to update getting-started/theming.md!\n:root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\n // making it impossible to interact with the content\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `<td>` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Set the cursor for non-`<button>` buttons\n//\n// Details at https://github.com/twbs/bootstrap/pull/30562\n[role=\"button\"] {\n cursor: pointer;\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n$grid-row-columns: 6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n$table-th-font-weight: null !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y / 2) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n$custom-control-cursor: null !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: null !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: null !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'><path stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/></svg>\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: null !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'><circle r='3' fill='#{$custom-control-indicator-checked-color}'/></svg>\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'><path fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>\") !default;\n$custom-select-background: escape-svg($custom-select-indicator) no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>\") !default;\n\n$form-validation-states: () !default;\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-x: 0 !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n$dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size: null !default;\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/></svg>\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/></svg>\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n$user-selects: all, auto, none !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n &:hover { @content; }\n}\n\n@mixin hover-focus() {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus() {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active() {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { @include font-size($h1-font-size); }\nh2, .h2 { @include font-size($h2-font-size); }\nh3, .h3 { @include font-size($h3-font-size); }\nh4, .h4 { @include font-size($h4-font-size); }\nh5, .h5 { @include font-size($h5-font-size); }\nh6, .h6 { @include font-size($h6-font-size); }\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n @include font-size($display1-size);\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n @include font-size($display2-size);\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n @include font-size($display3-size);\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n @include font-size($display4-size);\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n @include font-size($small-font-size);\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled();\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled();\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size(90%);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n @include font-size($blockquote-font-size);\n}\n\n.blockquote-footer {\n display: block;\n @include font-size($blockquote-small-font-size);\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled() {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid();\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid();\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: $spacer / 2;\n line-height: 1;\n}\n\n.figure-caption {\n @include font-size($figure-caption-font-size);\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid() {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n @include deprecate(\"`img-retina()`\", \"v4.3.0\", \"v5\");\n}\n","// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n $return: ();\n @each $value in $radius {\n @if type-of($value) == number {\n $return: append($return, max($value, 0));\n } @else {\n $return: append($return, $value);\n }\n }\n @return $return;\n}\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: valid-radius($radius);\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-right-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-left-radius($radius) {\n @if $enable-rounded {\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n","// Inline code\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n @include font-size(100%);\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n @include deprecate(\"The `make-container-max-widths` mixin\", \"v4.5.2\", \"v5\");\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @if $columns > 0 {\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n }\n\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n @if $columns > 0 {\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n margin-bottom: $spacer;\n color: $table-color;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: 2 * $table-border-width;\n }\n }\n}\n\n.table-borderless {\n th,\n td,\n thead th,\n tbody + tbody {\n border: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover() {\n color: $table-hover-color;\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover() {\n color: $table-dark-hover-color;\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n\n @if $border != null {\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $border;\n }\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover() {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// Bootstrap functions\n//\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n $prev-key: null;\n $prev-num: null;\n @each $key, $num in $map {\n @if $prev-num == null or unit($num) == \"%\" or unit($prev-num) == \"%\" {\n // Do nothing\n } @else if not comparable($prev-num, $num) {\n @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n } @else if $prev-num >= $num {\n @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n }\n $prev-key: $key;\n $prev-num: $num;\n }\n}\n\n// Starts at zero\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map, $map-name: \"$grid-breakpoints\") {\n @if length($map) > 0 {\n $values: map-values($map);\n $first-value: nth($values, 1);\n @if $first-value != 0 {\n @warn \"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\";\n }\n }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n $index: str-index($string, $search);\n\n @if $index {\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n }\n\n @return $string;\n}\n\n// See https://codepen.io/kevinweber/pen/dXWoRw\n//\n// Requires the use of quotes around data URIs.\n\n@function escape-svg($string) {\n @if str-index($string, \"data:image/svg+xml\") {\n @each $char, $encoded in $escaped-characters {\n // Do not escape the url brackets\n @if str-index($string, \"url(\") == 1 {\n $string: url(\"#{str-replace(str-slice($string, 6, -3), $char, $encoded)}\");\n } @else {\n $string: str-replace($string, $char, $encoded);\n }\n }\n }\n\n @return $string;\n}\n\n// Color contrast\n@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {\n $r: red($color);\n $g: green($color);\n $b: blue($color);\n\n $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n @if ($yiq >= $yiq-contrasted-threshold) {\n @return $dark;\n } @else {\n @return $light;\n }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n $color: theme-color($color-name);\n $color-base: if($level > 0, $black, $white);\n $level: abs($level);\n\n @return mix($color-base, $color, $level * $theme-color-interval);\n}\n\n// Return valid calc\n@function add($value1, $value2, $return-calc: true) {\n @if $value1 == null {\n @return $value2;\n }\n\n @if $value2 == null {\n @return $value1;\n }\n\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n @return $value1 + $value2;\n }\n\n @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(\" + \") + $value2);\n}\n\n@function subtract($value1, $value2, $return-calc: true) {\n @if $value1 == null and $value2 == null {\n @return null;\n }\n\n @if $value1 == null {\n @return -$value2;\n }\n\n @if $value2 == null {\n @return $value1;\n }\n\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n @return $value1 - $value2;\n }\n\n @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(\" - \") + $value2);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n height: $input-height;\n padding: $input-padding-y $input-padding-x;\n font-family: $input-font-family;\n @include font-size($input-font-size);\n font-weight: $input-font-weight;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n @include border-radius($input-border-radius, 0);\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on `<select>`s in IE10+.\n &::-ms-expand {\n background-color: transparent;\n border: 0;\n }\n\n // Remove select outline from select box in FF\n &:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 $input-color;\n }\n\n // Customize the `:focus` state to imitate native WebKit styles.\n @include form-control-focus($ignore-warning: true);\n\n // Placeholder\n &::placeholder {\n color: $input-placeholder-color;\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n opacity: 1;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &:disabled,\n &[readonly] {\n background-color: $input-disabled-bg;\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n opacity: 1;\n }\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n &.form-control {\n appearance: none; // Fix appearance for date inputs in Safari\n }\n}\n\nselect.form-control {\n &:focus::-ms-value {\n // Suppress the nested default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: add($input-padding-y, $input-border-width);\n padding-bottom: add($input-padding-y, $input-border-width);\n margin-bottom: 0; // Override the `<label>/<legend>` default\n @include font-size(inherit); // Override the `<legend>` default\n line-height: $input-line-height;\n}\n\n.col-form-label-lg {\n padding-top: add($input-padding-y-lg, $input-border-width);\n padding-bottom: add($input-padding-y-lg, $input-border-width);\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n}\n\n.col-form-label-sm {\n padding-top: add($input-padding-y-sm, $input-border-width);\n padding-bottom: add($input-padding-y-sm, $input-border-width);\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n}\n\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: $input-padding-y 0;\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n @include font-size($input-font-size);\n line-height: $input-line-height;\n color: $input-plaintext-color;\n background-color: transparent;\n border: solid transparent;\n border-width: $input-border-width 0;\n\n &.form-control-sm,\n &.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// Repeated in `_input_group.scss` to avoid Sass extend issues.\n\n.form-control-sm {\n height: $input-height-sm;\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\n.form-control-lg {\n height: $input-height-lg;\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\n// stylelint-disable-next-line no-duplicate-selectors\nselect.form-control {\n &[size],\n &[multiple] {\n height: auto;\n }\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: $form-group-margin-bottom;\n}\n\n.form-text {\n display: block;\n margin-top: $form-text-margin-top;\n}\n\n\n// Form grid\n//\n// Special replacement for our grid system's `.row` for tighter form layouts.\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$form-grid-gutter-width / 2;\n margin-left: -$form-grid-gutter-width / 2;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: $form-grid-gutter-width / 2;\n padding-left: $form-grid-gutter-width / 2;\n }\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.form-check {\n position: relative;\n display: block;\n padding-left: $form-check-input-gutter;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: $form-check-input-margin-y;\n margin-left: -$form-check-input-gutter;\n\n // Use [disabled] and :disabled for workaround https://github.com/twbs/bootstrap/issues/28247\n &[disabled] ~ .form-check-label,\n &:disabled ~ .form-check-label {\n color: $text-muted;\n }\n}\n\n.form-check-label {\n margin-bottom: 0; // Override default `<label>` bottom margin\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0; // Override base .form-check\n margin-right: $form-check-inline-margin-x;\n\n // Undo .form-check-input defaults and add some `margin-right`.\n .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: $form-check-inline-input-margin-x;\n margin-left: 0;\n }\n}\n\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server side validation.\n\n@each $state, $data in $form-validation-states {\n @include form-validation-state($state, map-get($data, color), map-get($data, icon));\n}\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)\n\n // Because we use flex, the initial sizing of checkboxes is collapsed and\n // doesn't occupy the full-width (which is what we want for xs grid tier),\n // so we force that here.\n .form-check {\n width: 100%;\n }\n\n // Kick in the inline\n @include media-breakpoint-up(sm) {\n label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n\n // Inline-block all the things for \"inline\"\n .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n\n // Allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n\n // Make static controls behave like regular ones\n .form-control-plaintext {\n display: inline-block;\n }\n\n .input-group,\n .custom-select {\n width: auto;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match.\n .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: $form-check-input-margin-x;\n margin-left: 0;\n }\n\n .custom-control {\n align-items: center;\n justify-content: center;\n }\n .custom-control-label {\n margin-bottom: 0;\n }\n }\n}\n","// stylelint-disable property-disallowed-list\n@mixin transition($transition...) {\n @if length($transition) == 0 {\n $transition: $transition-base;\n }\n\n @if length($transition) > 1 {\n @each $value in $transition {\n @if $value == null or $value == none {\n @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n }\n }\n }\n\n @if $enable-transitions {\n @if nth($transition, 1) != null {\n transition: $transition;\n }\n\n @if $enable-prefers-reduced-motion-media-query and nth($transition, 1) != null and nth($transition, 1) != none {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n }\n}\n","// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus($ignore-warning: false) {\n &:focus {\n color: $input-focus-color;\n background-color: $input-focus-bg;\n border-color: $input-focus-border-color;\n outline: 0;\n @if $enable-shadows {\n @include box-shadow($input-box-shadow, $input-focus-box-shadow);\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: $input-focus-box-shadow;\n }\n }\n @include deprecate(\"The `form-control-focus()` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n\n// This mixin uses an `if()` technique to be compatible with Dart Sass\n// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details\n@mixin form-validation-state-selector($state) {\n @if ($state == \"valid\" or $state == \"invalid\") {\n .was-validated #{if(&, \"&\", \"\")}:#{$state},\n #{if(&, \"&\", \"\")}.is-#{$state} {\n @content;\n }\n } @else {\n #{if(&, \"&\", \"\")}.is-#{$state} {\n @content;\n }\n }\n}\n\n@mixin form-validation-state($state, $color, $icon) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n margin-top: $form-feedback-margin-top;\n @include font-size($form-feedback-font-size);\n color: $color;\n }\n\n .#{$state}-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%; // Contain to parent when possible\n padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\n margin-top: .1rem;\n @include font-size($form-feedback-tooltip-font-size);\n line-height: $form-feedback-tooltip-line-height;\n color: color-yiq($color);\n background-color: rgba($color, $form-feedback-tooltip-opacity);\n @include border-radius($form-feedback-tooltip-border-radius);\n }\n\n @include form-validation-state-selector($state) {\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n\n .form-control {\n @include form-validation-state-selector($state) {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-image: escape-svg($icon);\n background-repeat: no-repeat;\n background-position: right $input-height-inner-quarter center;\n background-size: $input-height-inner-half $input-height-inner-half;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n\n // stylelint-disable-next-line selector-no-qualifying-type\n textarea.form-control {\n @include form-validation-state-selector($state) {\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\n }\n }\n }\n\n .custom-select {\n @include form-validation-state-selector($state) {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $custom-select-feedback-icon-padding-right;\n background: $custom-select-background, escape-svg($icon) $custom-select-bg no-repeat $custom-select-feedback-icon-position / $custom-select-feedback-icon-size;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n\n .form-check-input {\n @include form-validation-state-selector($state) {\n ~ .form-check-label {\n color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .custom-control-input {\n @include form-validation-state-selector($state) {\n ~ .custom-control-label {\n color: $color;\n\n &::before {\n border-color: $color;\n }\n }\n\n &:checked {\n ~ .custom-control-label::before {\n border-color: lighten($color, 10%);\n @include gradient-bg(lighten($color, 10%));\n }\n }\n\n &:focus {\n ~ .custom-control-label::before {\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n &:not(:checked) ~ .custom-control-label::before {\n border-color: $color;\n }\n }\n }\n }\n\n // custom file\n .custom-file-input {\n @include form-validation-state-selector($state) {\n ~ .custom-file-label {\n border-color: $color;\n }\n\n &:focus {\n ~ .custom-file-label {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n}\n","// Gradients\n\n@mixin gradient-bg($color) {\n @if $enable-gradients {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\n } @else {\n background-color: $color;\n }\n}\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n background-repeat: repeat-x;\n}\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.btn {\n display: inline-block;\n font-family: $btn-font-family;\n font-weight: $btn-font-weight;\n color: $body-color;\n text-align: center;\n text-decoration: if($link-decoration == none, null, none);\n white-space: $btn-white-space;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: $btn-border-width solid transparent;\n @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);\n @include transition($btn-transition);\n\n @include hover() {\n color: $body-color;\n text-decoration: none;\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: $btn-focus-box-shadow;\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n opacity: $btn-disabled-opacity;\n @include box-shadow(none);\n }\n\n &:not(:disabled):not(.disabled) {\n cursor: if($enable-pointer-cursor-for-buttons, pointer, null);\n\n &:active,\n &.active {\n @include box-shadow($btn-active-box-shadow);\n\n &:focus {\n @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n }\n }\n }\n}\n\n// Future-proof disabling of clicks on `<a>` elements\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n .btn-#{$color} {\n @include button-variant($value, $value);\n }\n}\n\n@each $color, $value in $theme-colors {\n .btn-outline-#{$color} {\n @include button-outline-variant($value);\n }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n font-weight: $font-weight-normal;\n color: $link-color;\n text-decoration: $link-decoration;\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n\n &:focus,\n &.focus {\n text-decoration: $link-hover-decoration;\n }\n\n &:disabled,\n &.disabled {\n color: $btn-link-disabled-color;\n pointer-events: none;\n }\n\n // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\n}\n\n\n//\n// Block button\n//\n\n.btn-block {\n display: block;\n width: 100%;\n\n // Vertically space out multiple block buttons\n + .btn-block {\n margin-top: $btn-block-spacing-y;\n }\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\n color: color-yiq($background);\n @include gradient-bg($background);\n border-color: $border;\n @include box-shadow($btn-box-shadow);\n\n @include hover() {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n }\n\n &:focus,\n &.focus {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n @if $enable-shadows {\n @include box-shadow($btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n color: color-yiq($background);\n background-color: $background;\n border-color: $border;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n @if $enable-gradients {\n background-image: none; // Remove the gradient for the pressed/active state\n }\n border-color: $active-border;\n\n &:focus {\n @if $enable-shadows and $btn-active-box-shadow != none {\n @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n }\n}\n\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\n color: $color;\n border-color: $color;\n\n @include hover() {\n color: $color-hover;\n background-color: $active-background;\n border-color: $active-border;\n }\n\n &:focus,\n &.focus {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n\n &.disabled,\n &:disabled {\n color: $color;\n background-color: transparent;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n border-color: $active-border;\n\n &:focus {\n @if $enable-shadows and $btn-active-box-shadow != none {\n @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5));\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n }\n }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n line-height: $line-height;\n // Manually declare to provide an override to the browser default\n @include border-radius($border-radius, 0);\n}\n",".fade {\n @include transition($transition-fade);\n\n &:not(.show) {\n opacity: 0;\n }\n}\n\n.collapse {\n &:not(.show) {\n display: none;\n }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n}\n","// The dropdown wrapper (`<div>`)\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n\n // Generate the caret automatically\n @include caret();\n}\n\n// The dropdown menu\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: $zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: $dropdown-min-width;\n padding: $dropdown-padding-y $dropdown-padding-x;\n margin: $dropdown-spacer 0 0; // override default ul\n @include font-size($dropdown-font-size);\n color: $dropdown-color;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n list-style: none;\n background-color: $dropdown-bg;\n background-clip: padding-box;\n border: $dropdown-border-width solid $dropdown-border-color;\n @include border-radius($dropdown-border-radius);\n @include box-shadow($dropdown-box-shadow);\n}\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .dropdown-menu#{$infix}-left {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu#{$infix}-right {\n right: 0;\n left: auto;\n }\n }\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(up);\n }\n}\n\n.dropright {\n .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(right);\n &::after {\n vertical-align: 0;\n }\n }\n}\n\n.dropleft {\n .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(left);\n &::before {\n vertical-align: 0;\n }\n }\n}\n\n// When enabled Popper.js, reset basic dropdown position\n// stylelint-disable-next-line no-duplicate-selectors\n.dropdown-menu {\n &[x-placement^=\"top\"],\n &[x-placement^=\"right\"],\n &[x-placement^=\"bottom\"],\n &[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n }\n}\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n @include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y, true);\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n display: block;\n width: 100%; // For `<button>`s\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n clear: both;\n font-weight: $font-weight-normal;\n color: $dropdown-link-color;\n text-align: inherit; // For `<button>`s\n text-decoration: if($link-decoration == none, null, none);\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n background-color: transparent; // For `<button>`s\n border: 0; // For `<button>`s\n\n // Prevent dropdown overflow if there's no padding\n // See https://github.com/twbs/bootstrap/pull/27703\n @if $dropdown-padding-y == 0 {\n &:first-child {\n @include border-top-radius($dropdown-inner-border-radius);\n }\n\n &:last-child {\n @include border-bottom-radius($dropdown-inner-border-radius);\n }\n }\n\n @include hover-focus() {\n color: $dropdown-link-hover-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-hover-bg);\n }\n\n &.active,\n &:active {\n color: $dropdown-link-active-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-active-bg);\n }\n\n &.disabled,\n &:disabled {\n color: $dropdown-link-disabled-color;\n pointer-events: none;\n background-color: transparent;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: $dropdown-header-padding;\n margin-bottom: 0; // for use with heading elements\n @include font-size($font-size-sm);\n color: $dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Dropdown text\n.dropdown-item-text {\n display: block;\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n color: $dropdown-link-color;\n}\n","@mixin caret-down() {\n border-top: $caret-width solid;\n border-right: $caret-width solid transparent;\n border-bottom: 0;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up() {\n border-top: 0;\n border-right: $caret-width solid transparent;\n border-bottom: $caret-width solid;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-right() {\n border-top: $caret-width solid transparent;\n border-right: 0;\n border-bottom: $caret-width solid transparent;\n border-left: $caret-width solid;\n}\n\n@mixin caret-left() {\n border-top: $caret-width solid transparent;\n border-right: $caret-width solid;\n border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n @if $enable-caret {\n &::after {\n display: inline-block;\n margin-left: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @if $direction == down {\n @include caret-down();\n } @else if $direction == up {\n @include caret-up();\n } @else if $direction == right {\n @include caret-right();\n }\n }\n\n @if $direction == left {\n &::after {\n display: none;\n }\n\n &::before {\n display: inline-block;\n margin-right: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @include caret-left();\n }\n }\n\n &:empty::after {\n margin-left: 0;\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y, $ignore-warning: false) {\n height: 0;\n margin: $margin-y 0;\n overflow: hidden;\n border-top: 1px solid $color;\n @include deprecate(\"The `nav-divider()` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; // match .btn alignment given font-size hack above\n\n > .btn {\n position: relative;\n flex: 1 1 auto;\n\n // Bring the hover, focused, and \"active\" buttons to the front to overlay\n // the borders properly\n @include hover() {\n z-index: 1;\n }\n &:focus,\n &:active,\n &.active {\n z-index: 1;\n }\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n\n .input-group {\n width: auto;\n }\n}\n\n.btn-group {\n // Prevent double borders when buttons are next to each other\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-left: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-right-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-left-radius(0);\n }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n padding-right: $btn-padding-x * .75;\n padding-left: $btn-padding-x * .75;\n\n &::after,\n .dropup &::after,\n .dropright &::after {\n margin-left: 0;\n }\n\n .dropleft &::before {\n margin-right: 0;\n }\n}\n\n.btn-sm + .dropdown-toggle-split {\n padding-right: $btn-padding-x-sm * .75;\n padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n padding-right: $btn-padding-x-lg * .75;\n padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n @include box-shadow($btn-active-box-shadow);\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n @include box-shadow(none);\n }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n > .btn,\n > .btn-group {\n width: 100%;\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-top: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-bottom-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-top-radius(0);\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n.btn-group-toggle {\n > .btn,\n > .btn-group > .btn {\n margin-bottom: 0; // Override default `<label>` value\n\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap; // For form validation feedback\n align-items: stretch;\n width: 100%;\n\n > .form-control,\n > .form-control-plaintext,\n > .custom-select,\n > .custom-file {\n position: relative; // For focus state's z-index\n flex: 1 1 auto;\n width: 1%;\n min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size\n margin-bottom: 0;\n\n + .form-control,\n + .custom-select,\n + .custom-file {\n margin-left: -$input-border-width;\n }\n }\n\n // Bring the \"active\" form control to the top of surrounding elements\n > .form-control:focus,\n > .custom-select:focus,\n > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n }\n\n // Bring the custom file input above the label\n > .custom-file .custom-file-input:focus {\n z-index: 4;\n }\n\n > .form-control,\n > .custom-select {\n &:not(:last-child) { @include border-right-radius(0); }\n &:not(:first-child) { @include border-left-radius(0); }\n }\n\n // Custom file inputs have more complex markup, thus requiring different\n // border-radius overrides.\n > .custom-file {\n display: flex;\n align-items: center;\n\n &:not(:last-child) .custom-file-label,\n &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }\n &:not(:first-child) .custom-file-label { @include border-left-radius(0); }\n }\n}\n\n\n// Prepend and append\n//\n// While it requires one extra layer of HTML for each, dedicated prepend and\n// append elements allow us to 1) be less clever, 2) simplify our selectors, and\n// 3) support HTML5 form validation.\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n\n // Ensure buttons are always above inputs for more visually pleasing borders.\n // This isn't needed for `.input-group-text` since it shares the same border-color\n // as our inputs.\n .btn {\n position: relative;\n z-index: 2;\n\n &:focus {\n z-index: 3;\n }\n }\n\n .btn + .btn,\n .btn + .input-group-text,\n .input-group-text + .input-group-text,\n .input-group-text + .btn {\n margin-left: -$input-border-width;\n }\n}\n\n.input-group-prepend { margin-right: -$input-border-width; }\n.input-group-append { margin-left: -$input-border-width; }\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: $input-padding-y $input-padding-x;\n margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom\n @include font-size($input-font-size); // Match inputs\n font-weight: $font-weight-normal;\n line-height: $input-line-height;\n color: $input-group-addon-color;\n text-align: center;\n white-space: nowrap;\n background-color: $input-group-addon-bg;\n border: $input-border-width solid $input-group-addon-border-color;\n @include border-radius($input-border-radius);\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: $input-height-lg;\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: $input-height-sm;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: $custom-select-padding-x + $custom-select-indicator-padding;\n}\n\n\n// Prepend and append rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n @include border-right-radius(0);\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n @include border-left-radius(0);\n}\n","// Embedded icons from Open Iconic.\n// Released under MIT and copyright 2014 Waybury.\n// https://useiconic.com/open\n\n\n// Checkboxes and radios\n//\n// Base class takes care of all the key behavioral aspects.\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: $font-size-base * $line-height-base;\n padding-left: $custom-control-gutter + $custom-control-indicator-size;\n color-adjust: exact; // Keep themed appearance for print\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: $custom-control-spacer-x;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1; // Put the input behind the label so it doesn't overlay text\n width: $custom-control-indicator-size;\n height: ($font-size-base * $line-height-base + $custom-control-indicator-size) / 2;\n opacity: 0;\n\n &:checked ~ .custom-control-label::before {\n color: $custom-control-indicator-checked-color;\n border-color: $custom-control-indicator-checked-border-color;\n @include gradient-bg($custom-control-indicator-checked-bg);\n @include box-shadow($custom-control-indicator-checked-box-shadow);\n }\n\n &:focus ~ .custom-control-label::before {\n // the mixin is not used here to make sure there is feedback\n @if $enable-shadows {\n box-shadow: $input-box-shadow, $custom-control-indicator-focus-box-shadow;\n } @else {\n box-shadow: $custom-control-indicator-focus-box-shadow;\n }\n }\n\n &:focus:not(:checked) ~ .custom-control-label::before {\n border-color: $custom-control-indicator-focus-border-color;\n }\n\n &:not(:disabled):active ~ .custom-control-label::before {\n color: $custom-control-indicator-active-color;\n background-color: $custom-control-indicator-active-bg;\n border-color: $custom-control-indicator-active-border-color;\n @include box-shadow($custom-control-indicator-active-box-shadow);\n }\n\n // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247\n &[disabled],\n &:disabled {\n ~ .custom-control-label {\n color: $custom-control-label-disabled-color;\n\n &::before {\n background-color: $custom-control-indicator-disabled-bg;\n }\n }\n }\n}\n\n// Custom control indicators\n//\n// Build the custom controls out of pseudo-elements.\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n color: $custom-control-label-color;\n vertical-align: top;\n cursor: $custom-control-cursor;\n\n // Background-color and (when enabled) gradient\n &::before {\n position: absolute;\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n left: -($custom-control-gutter + $custom-control-indicator-size);\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n pointer-events: none;\n content: \"\";\n background-color: $custom-control-indicator-bg;\n border: $custom-control-indicator-border-color solid $custom-control-indicator-border-width;\n @include box-shadow($custom-control-indicator-box-shadow);\n }\n\n // Foreground (icon)\n &::after {\n position: absolute;\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n left: -($custom-control-gutter + $custom-control-indicator-size);\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n content: \"\";\n background: no-repeat 50% / #{$custom-control-indicator-bg-size};\n }\n}\n\n\n// Checkboxes\n//\n// Tweak just a few things for checkboxes.\n\n.custom-checkbox {\n .custom-control-label::before {\n @include border-radius($custom-checkbox-indicator-border-radius);\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-image: escape-svg($custom-checkbox-indicator-icon-checked);\n }\n }\n\n .custom-control-input:indeterminate ~ .custom-control-label {\n &::before {\n border-color: $custom-checkbox-indicator-indeterminate-border-color;\n @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);\n @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);\n }\n &::after {\n background-image: escape-svg($custom-checkbox-indicator-icon-indeterminate);\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n }\n &:indeterminate ~ .custom-control-label::before {\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n }\n }\n}\n\n// Radios\n//\n// Tweak just a few things for radios.\n\n.custom-radio {\n .custom-control-label::before {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: $custom-radio-indicator-border-radius;\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-image: escape-svg($custom-radio-indicator-icon-checked);\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n }\n }\n}\n\n\n// switches\n//\n// Tweak a few things for switches\n\n.custom-switch {\n padding-left: $custom-switch-width + $custom-control-gutter;\n\n .custom-control-label {\n &::before {\n left: -($custom-switch-width + $custom-control-gutter);\n width: $custom-switch-width;\n pointer-events: all;\n // stylelint-disable-next-line property-disallowed-list\n border-radius: $custom-switch-indicator-border-radius;\n }\n\n &::after {\n top: add(($font-size-base * $line-height-base - $custom-control-indicator-size) / 2, $custom-control-indicator-border-width * 2);\n left: add(-($custom-switch-width + $custom-control-gutter), $custom-control-indicator-border-width * 2);\n width: $custom-switch-indicator-size;\n height: $custom-switch-indicator-size;\n background-color: $custom-control-indicator-border-color;\n // stylelint-disable-next-line property-disallowed-list\n border-radius: $custom-switch-indicator-border-radius;\n @include transition(transform .15s ease-in-out, $custom-forms-transition);\n }\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-color: $custom-control-indicator-bg;\n transform: translateX($custom-switch-width - $custom-control-indicator-size);\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n }\n }\n}\n\n\n// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// https://primer.github.io/.\n//\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: $custom-select-height;\n padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;\n font-family: $custom-select-font-family;\n @include font-size($custom-select-font-size);\n font-weight: $custom-select-font-weight;\n line-height: $custom-select-line-height;\n color: $custom-select-color;\n vertical-align: middle;\n background: $custom-select-bg $custom-select-background;\n border: $custom-select-border-width solid $custom-select-border-color;\n @include border-radius($custom-select-border-radius, 0);\n @include box-shadow($custom-select-box-shadow);\n appearance: none;\n\n &:focus {\n border-color: $custom-select-focus-border-color;\n outline: 0;\n @if $enable-shadows {\n @include box-shadow($custom-select-box-shadow, $custom-select-focus-box-shadow);\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: $custom-select-focus-box-shadow;\n }\n\n &::-ms-value {\n // For visual consistency with other platforms/browsers,\n // suppress the default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n }\n\n &[multiple],\n &[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: $custom-select-padding-x;\n background-image: none;\n }\n\n &:disabled {\n color: $custom-select-disabled-color;\n background-color: $custom-select-disabled-bg;\n }\n\n // Hides the default caret in IE11\n &::-ms-expand {\n display: none;\n }\n\n // Remove outline from select box in FF\n &:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 $custom-select-color;\n }\n}\n\n.custom-select-sm {\n height: $custom-select-height-sm;\n padding-top: $custom-select-padding-y-sm;\n padding-bottom: $custom-select-padding-y-sm;\n padding-left: $custom-select-padding-x-sm;\n @include font-size($custom-select-font-size-sm);\n}\n\n.custom-select-lg {\n height: $custom-select-height-lg;\n padding-top: $custom-select-padding-y-lg;\n padding-bottom: $custom-select-padding-y-lg;\n padding-left: $custom-select-padding-x-lg;\n @include font-size($custom-select-font-size-lg);\n}\n\n\n// File\n//\n// Custom file input.\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: $custom-file-height;\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: $custom-file-height;\n margin: 0;\n opacity: 0;\n\n &:focus ~ .custom-file-label {\n border-color: $custom-file-focus-border-color;\n box-shadow: $custom-file-focus-box-shadow;\n }\n\n // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247\n &[disabled] ~ .custom-file-label,\n &:disabled ~ .custom-file-label {\n background-color: $custom-file-disabled-bg;\n }\n\n @each $lang, $value in $custom-file-text {\n &:lang(#{$lang}) ~ .custom-file-label::after {\n content: $value;\n }\n }\n\n ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n }\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: $custom-file-height;\n padding: $custom-file-padding-y $custom-file-padding-x;\n font-family: $custom-file-font-family;\n font-weight: $custom-file-font-weight;\n line-height: $custom-file-line-height;\n color: $custom-file-color;\n background-color: $custom-file-bg;\n border: $custom-file-border-width solid $custom-file-border-color;\n @include border-radius($custom-file-border-radius);\n @include box-shadow($custom-file-box-shadow);\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: $custom-file-height-inner;\n padding: $custom-file-padding-y $custom-file-padding-x;\n line-height: $custom-file-line-height;\n color: $custom-file-button-color;\n content: \"Browse\";\n @include gradient-bg($custom-file-button-bg);\n border-left: inherit;\n @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);\n }\n}\n\n// Range\n//\n// Style range inputs the same across browsers. Vendor-specific rules for pseudo\n// elements cannot be mixed. As such, there are no shared styles for focus or\n// active states on prefixed selectors.\n\n.custom-range {\n width: 100%;\n height: add($custom-range-thumb-height, $custom-range-thumb-focus-box-shadow-width * 2);\n padding: 0; // Need to reset padding\n background-color: transparent;\n appearance: none;\n\n &:focus {\n outline: none;\n\n // Pseudo-elements must be split across multiple rulesets to have an effect.\n // No box-shadow() mixin for focus accessibility.\n &::-webkit-slider-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n &::-moz-range-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n &::-ms-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n }\n\n &::-moz-focus-outer {\n border: 0;\n }\n\n &::-webkit-slider-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: ($custom-range-track-height - $custom-range-thumb-height) / 2; // Webkit specific\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-webkit-slider-runnable-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent; // Why?\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent;\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-moz-range-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-moz-range-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent; // Firefox specific?\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: 0; // Edge specific\n margin-right: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n margin-left: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-ms-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: transparent;\n border-color: transparent;\n border-width: $custom-range-thumb-height / 2;\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-fill-lower {\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &::-ms-fill-upper {\n margin-right: 15px; // arbitrary?\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &:disabled {\n &::-webkit-slider-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n\n &::-webkit-slider-runnable-track {\n cursor: default;\n }\n\n &::-moz-range-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n\n &::-moz-range-track {\n cursor: default;\n }\n\n &::-ms-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n }\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n @include transition($custom-forms-transition);\n}\n","// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s, `<ul>`s or `<ol>`s.\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: $nav-link-padding-y $nav-link-padding-x;\n text-decoration: if($link-decoration == none, null, none);\n\n @include hover-focus() {\n text-decoration: none;\n }\n\n // Disabled state lightens text\n &.disabled {\n color: $nav-link-disabled-color;\n pointer-events: none;\n cursor: default;\n }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\n\n .nav-item {\n margin-bottom: -$nav-tabs-border-width;\n }\n\n .nav-link {\n border: $nav-tabs-border-width solid transparent;\n @include border-top-radius($nav-tabs-border-radius);\n\n @include hover-focus() {\n border-color: $nav-tabs-link-hover-border-color;\n }\n\n &.disabled {\n color: $nav-link-disabled-color;\n background-color: transparent;\n border-color: transparent;\n }\n }\n\n .nav-link.active,\n .nav-item.show .nav-link {\n color: $nav-tabs-link-active-color;\n background-color: $nav-tabs-link-active-bg;\n border-color: $nav-tabs-link-active-border-color;\n }\n\n .dropdown-menu {\n // Make dropdown border overlap tab border\n margin-top: -$nav-tabs-border-width;\n // Remove the top rounded corners here since there is a hard edge above the menu\n @include border-top-radius(0);\n }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n .nav-link {\n @include border-radius($nav-pills-border-radius);\n }\n\n .nav-link.active,\n .show > .nav-link {\n color: $nav-pills-link-active-color;\n background-color: $nav-pills-link-active-bg;\n }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n > .nav-link,\n .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n}\n\n.nav-justified {\n > .nav-link,\n .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n","// Contents\n//\n// Navbar\n// Navbar brand\n// Navbar nav\n// Navbar text\n// Navbar divider\n// Responsive navbar\n// Navbar position\n// Navbar themes\n\n\n// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap; // allow us to do the line break for collapsing content\n align-items: center;\n justify-content: space-between; // space out brand from logo\n padding: $navbar-padding-y $navbar-padding-x;\n\n // Because flex properties aren't inherited, we need to redeclare these first\n // few properties so that content nested within behave properly.\n %container-flex-properties {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n }\n\n .container,\n .container-fluid {\n @extend %container-flex-properties;\n }\n\n @each $breakpoint, $container-max-width in $container-max-widths {\n > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {\n @extend %container-flex-properties;\n }\n }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n display: inline-block;\n padding-top: $navbar-brand-padding-y;\n padding-bottom: $navbar-brand-padding-y;\n margin-right: $navbar-padding-x;\n @include font-size($navbar-brand-font-size);\n line-height: inherit;\n white-space: nowrap;\n\n @include hover-focus() {\n text-decoration: none;\n }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n display: flex;\n flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-link {\n padding-right: 0;\n padding-left: 0;\n }\n\n .dropdown-menu {\n position: static;\n float: none;\n }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n display: inline-block;\n padding-top: $nav-link-padding-y;\n padding-bottom: $nav-link-padding-y;\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n // For always expanded or extra full navbars, ensure content aligns itself\n // properly vertically. Can be easily overridden with flex utilities.\n align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\n @include font-size($navbar-toggler-font-size);\n line-height: 1;\n background-color: transparent; // remove default button style\n border: $border-width solid transparent; // remove default button style\n @include border-radius($navbar-toggler-border-radius);\n\n @include hover-focus() {\n text-decoration: none;\n }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n %container-navbar-expand-#{$breakpoint} {\n padding-right: 0;\n padding-left: 0;\n }\n\n > .container,\n > .container-fluid {\n @extend %container-navbar-expand-#{$breakpoint};\n }\n\n @each $size, $container-max-width in $container-max-widths {\n > .container#{breakpoint-infix($size, $container-max-widths)} {\n @extend %container-navbar-expand-#{$breakpoint};\n }\n }\n }\n\n @include media-breakpoint-up($next) {\n flex-flow: row nowrap;\n justify-content: flex-start;\n\n .navbar-nav {\n flex-direction: row;\n\n .dropdown-menu {\n position: absolute;\n }\n\n .nav-link {\n padding-right: $navbar-nav-link-padding-x;\n padding-left: $navbar-nav-link-padding-x;\n }\n }\n\n // For nesting containers, have to redeclare for alignment purposes\n %container-nesting-#{$breakpoint} {\n flex-wrap: nowrap;\n }\n\n > .container,\n > .container-fluid {\n @extend %container-nesting-#{$breakpoint};\n }\n\n @each $size, $container-max-width in $container-max-widths {\n > .container#{breakpoint-infix($size, $container-max-widths)} {\n @extend %container-nesting-#{$breakpoint};\n }\n }\n\n .navbar-collapse {\n display: flex !important; // stylelint-disable-line declaration-no-important\n\n // Changes flex-bases to auto because of an IE10 bug\n flex-basis: auto;\n }\n\n .navbar-toggler {\n display: none;\n }\n }\n }\n }\n}\n\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n// Dark links against a light background\n.navbar-light {\n .navbar-brand {\n color: $navbar-light-brand-color;\n\n @include hover-focus() {\n color: $navbar-light-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-light-color;\n\n @include hover-focus() {\n color: $navbar-light-hover-color;\n }\n\n &.disabled {\n color: $navbar-light-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-light-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-light-color;\n border-color: $navbar-light-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: escape-svg($navbar-light-toggler-icon-bg);\n }\n\n .navbar-text {\n color: $navbar-light-color;\n a {\n color: $navbar-light-active-color;\n\n @include hover-focus() {\n color: $navbar-light-active-color;\n }\n }\n }\n}\n\n// White links against a dark background\n.navbar-dark {\n .navbar-brand {\n color: $navbar-dark-brand-color;\n\n @include hover-focus() {\n color: $navbar-dark-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-dark-color;\n\n @include hover-focus() {\n color: $navbar-dark-hover-color;\n }\n\n &.disabled {\n color: $navbar-dark-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-dark-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-dark-color;\n border-color: $navbar-dark-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: escape-svg($navbar-dark-toggler-icon-bg);\n }\n\n .navbar-text {\n color: $navbar-dark-color;\n a {\n color: $navbar-dark-active-color;\n\n @include hover-focus() {\n color: $navbar-dark-active-color;\n }\n }\n }\n}\n","//\n// Base styles\n//\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\n height: $card-height;\n word-wrap: break-word;\n background-color: $card-bg;\n background-clip: border-box;\n border: $card-border-width solid $card-border-color;\n @include border-radius($card-border-radius);\n\n > hr {\n margin-right: 0;\n margin-left: 0;\n }\n\n > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n\n &:first-child {\n border-top-width: 0;\n @include border-top-radius($card-inner-border-radius);\n }\n\n &:last-child {\n border-bottom-width: 0;\n @include border-bottom-radius($card-inner-border-radius);\n }\n }\n\n // Due to specificity of the above selector (`.card > .list-group`), we must\n // use a child selector here to prevent double borders.\n > .card-header + .list-group,\n > .list-group + .card-footer {\n border-top: 0;\n }\n}\n\n.card-body {\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n // as much space as possible, ensuring footers are aligned to the bottom.\n flex: 1 1 auto;\n // Workaround for the image size bug in IE\n // See: https://github.com/twbs/bootstrap/pull/28855\n min-height: 1px;\n padding: $card-spacer-x;\n color: $card-color;\n}\n\n.card-title {\n margin-bottom: $card-spacer-y;\n}\n\n.card-subtitle {\n margin-top: -$card-spacer-y / 2;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link {\n @include hover() {\n text-decoration: none;\n }\n\n + .card-link {\n margin-left: $card-spacer-x;\n }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n padding: $card-spacer-y $card-spacer-x;\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\n color: $card-cap-color;\n background-color: $card-cap-bg;\n border-bottom: $card-border-width solid $card-border-color;\n\n &:first-child {\n @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\n }\n}\n\n.card-footer {\n padding: $card-spacer-y $card-spacer-x;\n color: $card-cap-color;\n background-color: $card-cap-bg;\n border-top: $card-border-width solid $card-border-color;\n\n &:last-child {\n @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\n }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n margin-right: -$card-spacer-x / 2;\n margin-bottom: -$card-spacer-y;\n margin-left: -$card-spacer-x / 2;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -$card-spacer-x / 2;\n margin-left: -$card-spacer-x / 2;\n}\n\n// Card image\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: $card-img-overlay-padding;\n @include border-radius($card-inner-border-radius);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0; // For IE: https://github.com/twbs/bootstrap/issues/29396\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n}\n\n.card-img,\n.card-img-top {\n @include border-top-radius($card-inner-border-radius);\n}\n\n.card-img,\n.card-img-bottom {\n @include border-bottom-radius($card-inner-border-radius);\n}\n\n\n// Card deck\n\n.card-deck {\n .card {\n margin-bottom: $card-deck-margin;\n }\n\n @include media-breakpoint-up(sm) {\n display: flex;\n flex-flow: row wrap;\n margin-right: -$card-deck-margin;\n margin-left: -$card-deck-margin;\n\n .card {\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n margin-right: $card-deck-margin;\n margin-bottom: 0; // Override the default\n margin-left: $card-deck-margin;\n }\n }\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n margin-bottom: $card-group-margin;\n }\n\n @include media-breakpoint-up(sm) {\n display: flex;\n flex-flow: row wrap;\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n margin-bottom: 0;\n\n + .card {\n margin-left: 0;\n border-left: 0;\n }\n\n // Handle rounded corners\n @if $enable-rounded {\n &:not(:last-child) {\n @include border-right-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-disallowed-list\n border-top-right-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-disallowed-list\n border-bottom-right-radius: 0;\n }\n }\n\n &:not(:first-child) {\n @include border-left-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-disallowed-list\n border-top-left-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-disallowed-list\n border-bottom-left-radius: 0;\n }\n }\n }\n }\n }\n}\n\n\n//\n// Columns\n//\n\n.card-columns {\n .card {\n margin-bottom: $card-columns-margin;\n }\n\n @include media-breakpoint-up(sm) {\n column-count: $card-columns-count;\n column-gap: $card-columns-gap;\n orphans: 1;\n widows: 1;\n\n .card {\n display: inline-block; // Don't let them vertically span multiple columns\n width: 100%; // Don't let their width change\n }\n }\n}\n\n\n//\n// Accordion\n//\n\n.accordion {\n overflow-anchor: none;\n\n > .card {\n overflow: hidden;\n\n &:not(:last-of-type) {\n border-bottom: 0;\n @include border-bottom-radius(0);\n }\n\n &:not(:first-of-type) {\n @include border-top-radius(0);\n }\n\n > .card-header {\n @include border-radius(0);\n margin-bottom: -$card-border-width;\n }\n }\n}\n",".breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: $breadcrumb-padding-y $breadcrumb-padding-x;\n margin-bottom: $breadcrumb-margin-bottom;\n @include font-size($breadcrumb-font-size);\n list-style: none;\n background-color: $breadcrumb-bg;\n @include border-radius($breadcrumb-border-radius);\n}\n\n.breadcrumb-item {\n display: flex;\n\n // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n + .breadcrumb-item {\n padding-left: $breadcrumb-item-padding;\n\n &::before {\n display: inline-block; // Suppress underlining of the separator in modern browsers\n padding-right: $breadcrumb-item-padding;\n color: $breadcrumb-divider-color;\n content: escape-svg($breadcrumb-divider);\n }\n }\n\n // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built\n // without `<ul>`s. The `::before` pseudo-element generates an element\n // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.\n //\n // To trick IE into suppressing the underline, we give the pseudo-element an\n // underline and then immediately remove it.\n + .breadcrumb-item:hover::before {\n text-decoration: underline;\n }\n // stylelint-disable-next-line no-duplicate-selectors\n + .breadcrumb-item:hover::before {\n text-decoration: none;\n }\n\n &.active {\n color: $breadcrumb-active-color;\n }\n}\n",".pagination {\n display: flex;\n @include list-unstyled();\n @include border-radius();\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: $pagination-padding-y $pagination-padding-x;\n margin-left: -$pagination-border-width;\n line-height: $pagination-line-height;\n color: $pagination-color;\n text-decoration: if($link-decoration == none, null, none);\n background-color: $pagination-bg;\n border: $pagination-border-width solid $pagination-border-color;\n\n &:hover {\n z-index: 2;\n color: $pagination-hover-color;\n text-decoration: none;\n background-color: $pagination-hover-bg;\n border-color: $pagination-hover-border-color;\n }\n\n &:focus {\n z-index: 3;\n outline: $pagination-focus-outline;\n box-shadow: $pagination-focus-box-shadow;\n }\n}\n\n.page-item {\n &:first-child {\n .page-link {\n margin-left: 0;\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n\n &.active .page-link {\n z-index: 3;\n color: $pagination-active-color;\n background-color: $pagination-active-bg;\n border-color: $pagination-active-border-color;\n }\n\n &.disabled .page-link {\n color: $pagination-disabled-color;\n pointer-events: none;\n // Opinionated: remove the \"hand\" cursor set previously for .page-link\n cursor: auto;\n background-color: $pagination-disabled-bg;\n border-color: $pagination-disabled-border-color;\n }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);\n}\n\n.pagination-sm {\n @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);\n}\n","// Pagination\n\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n .page-link {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n line-height: $line-height;\n }\n\n .page-item {\n &:first-child {\n .page-link {\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n }\n}\n","// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n display: inline-block;\n padding: $badge-padding-y $badge-padding-x;\n @include font-size($badge-font-size);\n font-weight: $badge-font-weight;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n @include border-radius($badge-border-radius);\n @include transition($badge-transition);\n\n @at-root a#{&} {\n @include hover-focus() {\n text-decoration: none;\n }\n }\n\n // Empty badges collapse automatically\n &:empty {\n display: none;\n }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n// Pill badges\n//\n// Make them extra rounded with a modifier to replace v3's badges.\n\n.badge-pill {\n padding-right: $badge-pill-padding-x;\n padding-left: $badge-pill-padding-x;\n @include border-radius($badge-pill-border-radius);\n}\n\n// Colors\n//\n// Contextual variations (linked badges get darker on :hover).\n\n@each $color, $value in $theme-colors {\n .badge-#{$color} {\n @include badge-variant($value);\n }\n}\n","@mixin badge-variant($bg) {\n color: color-yiq($bg);\n background-color: $bg;\n\n @at-root a#{&} {\n @include hover-focus() {\n color: color-yiq($bg);\n background-color: darken($bg, 10%);\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: 0 0 0 $badge-focus-width rgba($bg, .5);\n }\n }\n}\n",".jumbotron {\n padding: $jumbotron-padding ($jumbotron-padding / 2);\n margin-bottom: $jumbotron-padding;\n color: $jumbotron-color;\n background-color: $jumbotron-bg;\n @include border-radius($border-radius-lg);\n\n @include media-breakpoint-up(sm) {\n padding: ($jumbotron-padding * 2) $jumbotron-padding;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n @include border-radius(0);\n}\n","//\n// Base styles\n//\n\n.alert {\n position: relative;\n padding: $alert-padding-y $alert-padding-x;\n margin-bottom: $alert-margin-bottom;\n border: $alert-border-width solid transparent;\n @include border-radius($alert-border-radius);\n}\n\n// Headings for larger alerts\n.alert-heading {\n // Specified to prevent conflicts of changing $headings-color\n color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n padding-right: $close-font-size + $alert-padding-x * 2;\n\n // Adjust close link position\n .close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: $alert-padding-y $alert-padding-x;\n color: inherit;\n }\n}\n\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $color, $value in $theme-colors {\n .alert-#{$color} {\n @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\n }\n}\n","@mixin alert-variant($background, $border, $color) {\n color: $color;\n @include gradient-bg($background);\n border-color: $border;\n\n hr {\n border-top-color: darken($border, 5%);\n }\n\n .alert-link {\n color: darken($color, 10%);\n }\n}\n","// Disable animation if transitions are disabled\n@if $enable-transitions {\n @keyframes progress-bar-stripes {\n from { background-position: $progress-height 0; }\n to { background-position: 0 0; }\n }\n}\n\n.progress {\n display: flex;\n height: $progress-height;\n overflow: hidden; // force rounded corners by cropping it\n line-height: 0;\n @include font-size($progress-font-size);\n background-color: $progress-bg;\n @include border-radius($progress-border-radius);\n @include box-shadow($progress-box-shadow);\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: $progress-bar-color;\n text-align: center;\n white-space: nowrap;\n background-color: $progress-bar-bg;\n @include transition($progress-bar-transition);\n}\n\n.progress-bar-striped {\n @include gradient-striped();\n background-size: $progress-height $progress-height;\n}\n\n@if $enable-transitions {\n .progress-bar-animated {\n animation: progress-bar-stripes $progress-bar-animation-timing;\n\n @if $enable-prefers-reduced-motion-media-query {\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n }\n }\n}\n",".media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n","// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n display: flex;\n flex-direction: column;\n\n // No need to set list-style: none; since .list-group-item is block level\n padding-left: 0; // reset padding because ul and ol\n margin-bottom: 0;\n @include border-radius($list-group-border-radius);\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n width: 100%; // For `<button>`s (anchors become 100% by default though)\n color: $list-group-action-color;\n text-align: inherit; // For `<button>`s (anchors inherit)\n\n // Hover state\n @include hover-focus() {\n z-index: 1; // Place hover/focus items above their siblings for proper border styling\n color: $list-group-action-hover-color;\n text-decoration: none;\n background-color: $list-group-hover-bg;\n }\n\n &:active {\n color: $list-group-action-active-color;\n background-color: $list-group-action-active-bg;\n }\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: $list-group-item-padding-y $list-group-item-padding-x;\n color: $list-group-color;\n text-decoration: if($link-decoration == none, null, none);\n background-color: $list-group-bg;\n border: $list-group-border-width solid $list-group-border-color;\n\n &:first-child {\n @include border-top-radius(inherit);\n }\n\n &:last-child {\n @include border-bottom-radius(inherit);\n }\n\n &.disabled,\n &:disabled {\n color: $list-group-disabled-color;\n pointer-events: none;\n background-color: $list-group-disabled-bg;\n }\n\n // Include both here for `<a>`s and `<button>`s\n &.active {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: $list-group-active-color;\n background-color: $list-group-active-bg;\n border-color: $list-group-active-border-color;\n }\n\n & + & {\n border-top-width: 0;\n\n &.active {\n margin-top: -$list-group-border-width;\n border-top-width: $list-group-border-width;\n }\n }\n}\n\n\n// Horizontal\n//\n// Change the layout of list group items from vertical (default) to horizontal.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .list-group-horizontal#{$infix} {\n flex-direction: row;\n\n > .list-group-item {\n &:first-child {\n @include border-bottom-left-radius($list-group-border-radius);\n @include border-top-right-radius(0);\n }\n\n &:last-child {\n @include border-top-right-radius($list-group-border-radius);\n @include border-bottom-left-radius(0);\n }\n\n &.active {\n margin-top: 0;\n }\n\n + .list-group-item {\n border-top-width: $list-group-border-width;\n border-left-width: 0;\n\n &.active {\n margin-left: -$list-group-border-width;\n border-left-width: $list-group-border-width;\n }\n }\n }\n }\n }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n @include border-radius(0);\n\n > .list-group-item {\n border-width: 0 0 $list-group-border-width;\n\n &:last-child {\n border-bottom-width: 0;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $color, $value in $theme-colors {\n @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));\n}\n","// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n .list-group-item-#{$state} {\n color: $color;\n background-color: $background;\n\n &.list-group-item-action {\n @include hover-focus() {\n color: $color;\n background-color: darken($background, 5%);\n }\n\n &.active {\n color: $white;\n background-color: $color;\n border-color: $color;\n }\n }\n }\n}\n",".close {\n float: right;\n @include font-size($close-font-size);\n font-weight: $close-font-weight;\n line-height: 1;\n color: $close-color;\n text-shadow: $close-text-shadow;\n opacity: .5;\n\n // Override <a>'s hover style\n @include hover() {\n color: $close-color;\n text-decoration: none;\n }\n\n &:not(:disabled):not(.disabled) {\n @include hover-focus() {\n opacity: .75;\n }\n }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n// stylelint-disable-next-line selector-no-qualifying-type\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n}\n\n// Future-proof disabling of clicks on `<a>` elements\n\n// stylelint-disable-next-line selector-no-qualifying-type\na.close.disabled {\n pointer-events: none;\n}\n",".toast {\n // Prevents from shrinking in IE11, when in a flex container\n // See https://github.com/twbs/bootstrap/issues/28341\n flex-basis: $toast-max-width;\n max-width: $toast-max-width;\n @include font-size($toast-font-size);\n color: $toast-color;\n background-color: $toast-background-color;\n background-clip: padding-box;\n border: $toast-border-width solid $toast-border-color;\n box-shadow: $toast-box-shadow;\n opacity: 0;\n @include border-radius($toast-border-radius);\n\n &:not(:last-child) {\n margin-bottom: $toast-padding-x;\n }\n\n &.showing {\n opacity: 1;\n }\n\n &.show {\n display: block;\n opacity: 1;\n }\n\n &.hide {\n display: none;\n }\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: $toast-padding-y $toast-padding-x;\n color: $toast-header-color;\n background-color: $toast-header-background-color;\n background-clip: padding-box;\n border-bottom: $toast-border-width solid $toast-header-border-color;\n @include border-top-radius(subtract($toast-border-radius, $toast-border-width));\n}\n\n.toast-body {\n padding: $toast-padding-x; // apply to both vertical and horizontal\n}\n","// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and stuff\n\n\n.modal-open {\n // Kill the scroll on the body\n overflow: hidden;\n\n .modal {\n overflow-x: hidden;\n overflow-y: auto;\n }\n}\n\n// Container that the modal scrolls within\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n // See also https://github.com/twbs/bootstrap/issues/17695\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: $modal-dialog-margin;\n // allow clicks to pass through for custom click handling to close modal\n pointer-events: none;\n\n // When fading in the modal, animate it to slide down\n .modal.fade & {\n @include transition($modal-transition);\n transform: $modal-fade-transform;\n }\n .modal.show & {\n transform: $modal-show-transform;\n }\n\n // When trying to close, animate focus to scale\n .modal.modal-static & {\n transform: $modal-scale-transform;\n }\n}\n\n.modal-dialog-scrollable {\n display: flex; // IE10/11\n max-height: subtract(100%, $modal-dialog-margin * 2);\n\n .modal-content {\n max-height: subtract(100vh, $modal-dialog-margin * 2); // IE10/11\n overflow: hidden;\n }\n\n .modal-header,\n .modal-footer {\n flex-shrink: 0;\n }\n\n .modal-body {\n overflow-y: auto;\n }\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: subtract(100%, $modal-dialog-margin * 2);\n\n // Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)\n &::before {\n display: block; // IE10\n height: subtract(100vh, $modal-dialog-margin * 2);\n height: min-content; // Reset height to 0 except on IE\n content: \"\";\n }\n\n // Ensure `.modal-body` shows scrollbar (IE10/11)\n &.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n\n .modal-content {\n max-height: none;\n }\n\n &::before {\n content: none;\n }\n }\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n // counteract the pointer-events: none; in the .modal-dialog\n color: $modal-content-color;\n pointer-events: auto;\n background-color: $modal-content-bg;\n background-clip: padding-box;\n border: $modal-content-border-width solid $modal-content-border-color;\n @include border-radius($modal-content-border-radius);\n @include box-shadow($modal-content-box-shadow-xs);\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal-backdrop;\n width: 100vw;\n height: 100vh;\n background-color: $modal-backdrop-bg;\n\n // Fade for backdrop\n &.fade { opacity: 0; }\n &.show { opacity: $modal-backdrop-opacity; }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n display: flex;\n align-items: flex-start; // so the close btn always stays on the upper right corner\n justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n padding: $modal-header-padding;\n border-bottom: $modal-header-border-width solid $modal-header-border-color;\n @include border-top-radius($modal-content-inner-border-radius);\n\n .close {\n padding: $modal-header-padding;\n // auto on the left force icon to the right even when there is no .modal-title\n margin: (-$modal-header-padding-y) (-$modal-header-padding-x) (-$modal-header-padding-y) auto;\n }\n}\n\n// Title text within header\n.modal-title {\n margin-bottom: 0;\n line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n // Enable `flex-grow: 1` so that the body take up as much space as possible\n // when there should be a fixed height on `.modal-dialog`.\n flex: 1 1 auto;\n padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center; // vertically center\n justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n padding: $modal-inner-padding - $modal-footer-margin-between / 2;\n border-top: $modal-footer-border-width solid $modal-footer-border-color;\n @include border-bottom-radius($modal-content-inner-border-radius);\n\n // Place margin between footer elements\n // This solution is far from ideal because of the universal selector usage,\n // but is needed to fix https://github.com/twbs/bootstrap/issues/24800\n > * {\n margin: $modal-footer-margin-between / 2;\n }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n max-width: $modal-md;\n margin: $modal-dialog-margin-y-sm-up auto;\n }\n\n .modal-dialog-scrollable {\n max-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\n\n .modal-content {\n max-height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);\n }\n }\n\n .modal-dialog-centered {\n min-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\n\n &::before {\n height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);\n height: min-content;\n }\n }\n\n .modal-content {\n @include box-shadow($modal-content-box-shadow-sm-up);\n }\n\n .modal-sm { max-width: $modal-sm; }\n}\n\n@include media-breakpoint-up(lg) {\n .modal-lg,\n .modal-xl {\n max-width: $modal-lg;\n }\n}\n\n@include media-breakpoint-up(xl) {\n .modal-xl { max-width: $modal-xl; }\n}\n","// Base class\n.tooltip {\n position: absolute;\n z-index: $zindex-tooltip;\n display: block;\n margin: $tooltip-margin;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($tooltip-font-size);\n // Allow breaking very long words so they don't overflow the tooltip's bounds\n word-wrap: break-word;\n opacity: 0;\n\n &.show { opacity: $tooltip-opacity; }\n\n .arrow {\n position: absolute;\n display: block;\n width: $tooltip-arrow-width;\n height: $tooltip-arrow-height;\n\n &::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-tooltip-top {\n padding: $tooltip-arrow-height 0;\n\n .arrow {\n bottom: 0;\n\n &::before {\n top: 0;\n border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-top-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-right {\n padding: 0 $tooltip-arrow-height;\n\n .arrow {\n left: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n right: 0;\n border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-right-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-bottom {\n padding: $tooltip-arrow-height 0;\n\n .arrow {\n top: 0;\n\n &::before {\n bottom: 0;\n border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-bottom-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-left {\n padding: 0 $tooltip-arrow-height;\n\n .arrow {\n right: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n left: 0;\n border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-left-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-tooltip-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-tooltip-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-tooltip-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-tooltip-left;\n }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: $tooltip-max-width;\n padding: $tooltip-padding-y $tooltip-padding-x;\n color: $tooltip-color;\n text-align: center;\n background-color: $tooltip-bg;\n @include border-radius($tooltip-border-radius);\n}\n","@mixin reset-text() {\n font-family: $font-family-base;\n // We deliberately do NOT reset font-size or word-wrap.\n font-style: normal;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n}\n",".popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: $zindex-popover;\n display: block;\n max-width: $popover-max-width;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($popover-font-size);\n // Allow breaking very long words so they don't overflow the popover's bounds\n word-wrap: break-word;\n background-color: $popover-bg;\n background-clip: padding-box;\n border: $popover-border-width solid $popover-border-color;\n @include border-radius($popover-border-radius);\n @include box-shadow($popover-box-shadow);\n\n .arrow {\n position: absolute;\n display: block;\n width: $popover-arrow-width;\n height: $popover-arrow-height;\n margin: 0 $popover-border-radius;\n\n &::before,\n &::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-popover-top {\n margin-bottom: $popover-arrow-height;\n\n > .arrow {\n bottom: subtract(-$popover-arrow-height, $popover-border-width);\n\n &::before {\n bottom: 0;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-outer-color;\n }\n\n &::after {\n bottom: $popover-border-width;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-right {\n margin-left: $popover-arrow-height;\n\n > .arrow {\n left: subtract(-$popover-arrow-height, $popover-border-width);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners\n\n &::before {\n left: 0;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-outer-color;\n }\n\n &::after {\n left: $popover-border-width;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-bottom {\n margin-top: $popover-arrow-height;\n\n > .arrow {\n top: subtract(-$popover-arrow-height, $popover-border-width);\n\n &::before {\n top: 0;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-outer-color;\n }\n\n &::after {\n top: $popover-border-width;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-color;\n }\n }\n\n // This will remove the popover-header's border just below the arrow\n .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: $popover-arrow-width;\n margin-left: -$popover-arrow-width / 2;\n content: \"\";\n border-bottom: $popover-border-width solid $popover-header-bg;\n }\n}\n\n.bs-popover-left {\n margin-right: $popover-arrow-height;\n\n > .arrow {\n right: subtract(-$popover-arrow-height, $popover-border-width);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners\n\n &::before {\n right: 0;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-outer-color;\n }\n\n &::after {\n right: $popover-border-width;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-popover-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-popover-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-popover-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-popover-left;\n }\n}\n\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n padding: $popover-header-padding-y $popover-header-padding-x;\n margin-bottom: 0; // Reset the default from Reboot\n @include font-size($font-size-base);\n color: $popover-header-color;\n background-color: $popover-header-bg;\n border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);\n @include border-top-radius($popover-inner-border-radius);\n\n &:empty {\n display: none;\n }\n}\n\n.popover-body {\n padding: $popover-body-padding-y $popover-body-padding-x;\n color: $popover-body-color;\n}\n","// Notes on the classes:\n//\n// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)\n// even when their scroll action started on a carousel, but for compatibility (with Firefox)\n// we're preventing all actions instead\n// 2. The .carousel-item-left and .carousel-item-right is used to indicate where\n// the active slide is heading.\n// 3. .active.carousel-item is the current slide.\n// 4. .active.carousel-item-left and .active.carousel-item-right is the current\n// slide in its in-transition state. Only one of these occurs at a time.\n// 5. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right\n// is the upcoming slide in transition.\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n @include clearfix();\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n @include transition($carousel-transition);\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n\n//\n// Alternate transitions\n//\n\n.carousel-fade {\n .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n }\n\n .carousel-item.active,\n .carousel-item-next.carousel-item-left,\n .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n }\n\n .active.carousel-item-left,\n .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n @include transition(opacity 0s $carousel-transition-duration);\n }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n // Use flex for alignment (1-3)\n display: flex; // 1. allow flex styles\n align-items: center; // 2. vertically center contents\n justify-content: center; // 3. horizontally center contents\n width: $carousel-control-width;\n color: $carousel-control-color;\n text-align: center;\n opacity: $carousel-control-opacity;\n @include transition($carousel-control-transition);\n\n // Hover/focus state\n @include hover-focus() {\n color: $carousel-control-color;\n text-decoration: none;\n outline: 0;\n opacity: $carousel-control-hover-opacity;\n }\n}\n.carousel-control-prev {\n left: 0;\n @if $enable-gradients {\n background-image: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));\n }\n}\n.carousel-control-next {\n right: 0;\n @if $enable-gradients {\n background-image: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));\n }\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: $carousel-control-icon-width;\n height: $carousel-control-icon-width;\n background: no-repeat 50% / 100% 100%;\n}\n.carousel-control-prev-icon {\n background-image: escape-svg($carousel-control-prev-icon-bg);\n}\n.carousel-control-next-icon {\n background-image: escape-svg($carousel-control-next-icon-bg);\n}\n\n\n// Optional indicator pips\n//\n// Add an ordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0; // override <ol> default\n // Use the .carousel-control's width as margin so we don't overlay those\n margin-right: $carousel-control-width;\n margin-left: $carousel-control-width;\n list-style: none;\n\n li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: $carousel-indicator-width;\n height: $carousel-indicator-height;\n margin-right: $carousel-indicator-spacer;\n margin-left: $carousel-indicator-spacer;\n text-indent: -999px;\n cursor: pointer;\n background-color: $carousel-indicator-active-bg;\n background-clip: padding-box;\n // Use transparent borders to increase the hit area by 10px on top and bottom.\n border-top: $carousel-indicator-hit-area-height solid transparent;\n border-bottom: $carousel-indicator-hit-area-height solid transparent;\n opacity: .5;\n @include transition($carousel-indicator-transition);\n }\n\n .active {\n opacity: 1;\n }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n position: absolute;\n right: (100% - $carousel-caption-width) / 2;\n bottom: 20px;\n left: (100% - $carousel-caption-width) / 2;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: $carousel-caption-color;\n text-align: center;\n}\n","@mixin clearfix() {\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n}\n","//\n// Rotating border\n//\n\n@keyframes spinner-border {\n to { transform: rotate(360deg); }\n}\n\n.spinner-border {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n border: $spinner-border-width solid currentColor;\n border-right-color: transparent;\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n border-width: $spinner-border-width-sm;\n}\n\n//\n// Growing circle\n//\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n background-color: currentColor;\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n}\n","// stylelint-disable declaration-no-important\n\n.align-baseline { vertical-align: baseline !important; } // Browser default\n.align-top { vertical-align: top !important; }\n.align-middle { vertical-align: middle !important; }\n.align-bottom { vertical-align: bottom !important; }\n.align-text-bottom { vertical-align: text-bottom !important; }\n.align-text-top { vertical-align: text-top !important; }\n","// stylelint-disable declaration-no-important\n\n// Contextual backgrounds\n\n@mixin bg-variant($parent, $color, $ignore-warning: false) {\n #{$parent} {\n background-color: $color !important;\n }\n a#{$parent},\n button#{$parent} {\n @include hover-focus() {\n background-color: darken($color, 10%) !important;\n }\n }\n @include deprecate(\"The `bg-variant` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n\n@mixin bg-gradient-variant($parent, $color, $ignore-warning: false) {\n #{$parent} {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\n }\n @include deprecate(\"The `bg-gradient-variant` mixin\", \"v4.5.0\", \"v5\", $ignore-warning);\n}\n","// stylelint-disable declaration-no-important\n\n@each $color, $value in $theme-colors {\n @include bg-variant(\".bg-#{$color}\", $value, true);\n}\n\n@if $enable-gradients {\n @each $color, $value in $theme-colors {\n @include bg-gradient-variant(\".bg-gradient-#{$color}\", $value, true);\n }\n}\n\n.bg-white {\n background-color: $white !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n","// stylelint-disable property-disallowed-list, declaration-no-important\n\n//\n// Border\n//\n\n.border { border: $border-width solid $border-color !important; }\n.border-top { border-top: $border-width solid $border-color !important; }\n.border-right { border-right: $border-width solid $border-color !important; }\n.border-bottom { border-bottom: $border-width solid $border-color !important; }\n.border-left { border-left: $border-width solid $border-color !important; }\n\n.border-0 { border: 0 !important; }\n.border-top-0 { border-top: 0 !important; }\n.border-right-0 { border-right: 0 !important; }\n.border-bottom-0 { border-bottom: 0 !important; }\n.border-left-0 { border-left: 0 !important; }\n\n@each $color, $value in $theme-colors {\n .border-#{$color} {\n border-color: $value !important;\n }\n}\n\n.border-white {\n border-color: $white !important;\n}\n\n//\n// Border-radius\n//\n\n.rounded-sm {\n border-radius: $border-radius-sm !important;\n}\n\n.rounded {\n border-radius: $border-radius !important;\n}\n\n.rounded-top {\n border-top-left-radius: $border-radius !important;\n border-top-right-radius: $border-radius !important;\n}\n\n.rounded-right {\n border-top-right-radius: $border-radius !important;\n border-bottom-right-radius: $border-radius !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-left {\n border-top-left-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-lg {\n border-radius: $border-radius-lg !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: $rounded-pill !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n\n &::before {\n display: block;\n content: \"\";\n }\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n}\n\n@each $embed-responsive-aspect-ratio in $embed-responsive-aspect-ratios {\n $embed-responsive-aspect-ratio-x: nth($embed-responsive-aspect-ratio, 1);\n $embed-responsive-aspect-ratio-y: nth($embed-responsive-aspect-ratio, 2);\n\n .embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} {\n &::before {\n padding-top: percentage($embed-responsive-aspect-ratio-y / $embed-responsive-aspect-ratio-x);\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .float#{$infix}-left { float: left !important; }\n .float#{$infix}-right { float: right !important; }\n .float#{$infix}-none { float: none !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $value in $user-selects {\n .user-select-#{$value} { user-select: $value !important; }\n}\n","// stylelint-disable declaration-no-important\n\n@each $value in $overflows {\n .overflow-#{$value} { overflow: $value !important; }\n}\n","// stylelint-disable declaration-no-important\n\n// Common values\n@each $position in $positions {\n .position-#{$position} { position: $position !important; }\n}\n\n// Shorthand\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.sticky-top {\n @supports (position: sticky) {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n}\n","//\n// Screenreaders\n//\n\n.sr-only {\n @include sr-only();\n}\n\n.sr-only-focusable {\n @include sr-only-focusable();\n}\n","// Only display content to screen readers\n//\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only() {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px; // Fix for https://github.com/twbs/bootstrap/issues/25686\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable() {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n }\n}\n","// stylelint-disable declaration-no-important\n\n.shadow-sm { box-shadow: $box-shadow-sm !important; }\n.shadow { box-shadow: $box-shadow !important; }\n.shadow-lg { box-shadow: $box-shadow-lg !important; }\n.shadow-none { box-shadow: none !important; }\n","// stylelint-disable declaration-no-important\n\n// Width and height\n\n@each $prop, $abbrev in (width: w, height: h) {\n @each $size, $length in $sizes {\n .#{$abbrev}-#{$size} { #{$prop}: $length !important; }\n }\n}\n\n.mw-100 { max-width: 100% !important; }\n.mh-100 { max-height: 100% !important; }\n\n// Viewport additional helpers\n\n.min-vw-100 { min-width: 100vw !important; }\n.min-vh-100 { min-height: 100vh !important; }\n\n.vw-100 { width: 100vw !important; }\n.vh-100 { height: 100vh !important; }\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n","//\n// Stretched link\n//\n\n.stretched-link {\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n // Just in case `pointer-events: none` is set on a parent\n pointer-events: auto;\n content: \"\";\n // IE10 bugfix, see https://stackoverflow.com/questions/16947967/ie10-hover-pseudo-class-doesnt-work-without-background-color\n background-color: rgba(0, 0, 0, 0);\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Text\n//\n\n.text-monospace { font-family: $font-family-monospace !important; }\n\n// Alignment\n\n.text-justify { text-align: justify !important; }\n.text-wrap { white-space: normal !important; }\n.text-nowrap { white-space: nowrap !important; }\n.text-truncate { @include text-truncate(); }\n\n// Responsive alignment\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .text#{$infix}-left { text-align: left !important; }\n .text#{$infix}-right { text-align: right !important; }\n .text#{$infix}-center { text-align: center !important; }\n }\n}\n\n// Transformation\n\n.text-lowercase { text-transform: lowercase !important; }\n.text-uppercase { text-transform: uppercase !important; }\n.text-capitalize { text-transform: capitalize !important; }\n\n// Weight and italics\n\n.font-weight-light { font-weight: $font-weight-light !important; }\n.font-weight-lighter { font-weight: $font-weight-lighter !important; }\n.font-weight-normal { font-weight: $font-weight-normal !important; }\n.font-weight-bold { font-weight: $font-weight-bold !important; }\n.font-weight-bolder { font-weight: $font-weight-bolder !important; }\n.font-italic { font-style: italic !important; }\n\n// Contextual colors\n\n.text-white { color: $white !important; }\n\n@each $color, $value in $theme-colors {\n @include text-emphasis-variant(\".text-#{$color}\", $value, true);\n}\n\n.text-body { color: $body-color !important; }\n.text-muted { color: $text-muted !important; }\n\n.text-black-50 { color: rgba($black, .5) !important; }\n.text-white-50 { color: rgba($white, .5) !important; }\n\n// Misc\n\n.text-hide {\n @include text-hide($ignore-warning: true);\n}\n\n.text-decoration-none { text-decoration: none !important; }\n\n.text-break {\n word-break: break-word !important; // Deprecated, but avoids issues with flex containers\n word-wrap: break-word !important; // Used instead of `overflow-wrap` for IE & Edge Legacy\n}\n\n// Reset\n\n.text-reset { color: inherit !important; }\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","// stylelint-disable declaration-no-important\n\n// Typography\n\n@mixin text-emphasis-variant($parent, $color, $ignore-warning: false) {\n #{$parent} {\n color: $color !important;\n }\n @if $emphasized-link-hover-darken-percentage != 0 {\n a#{$parent} {\n @include hover-focus() {\n color: darken($color, $emphasized-link-hover-darken-percentage) !important;\n }\n }\n }\n @include deprecate(\"`text-emphasis-variant()`\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n","// CSS image replacement\n@mixin text-hide($ignore-warning: false) {\n // stylelint-disable-next-line font-family-no-missing-generic-family-keyword\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n\n @include deprecate(\"`text-hide()`\", \"v4.1.0\", \"v5\", $ignore-warning);\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Visibility utilities\n//\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n// Source: https://github.com/h5bp/main.css/blob/master/src/_print.css\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request:\n// https://www.phpied.com/delay-loading-your-print-css/\n// ==========================================================================\n\n@if $enable-print-styles {\n @media print {\n *,\n *::before,\n *::after {\n // Bootstrap specific; comment out `color` and `background`\n //color: $black !important; // Black prints faster\n text-shadow: none !important;\n //background: transparent !important;\n box-shadow: none !important;\n }\n\n a {\n &:not(.btn) {\n text-decoration: underline;\n }\n }\n\n // Bootstrap specific; comment the following selector out\n //a[href]::after {\n // content: \" (\" attr(href) \")\";\n //}\n\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n\n // Bootstrap specific; comment the following selector out\n //\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n //\n\n //a[href^=\"#\"]::after,\n //a[href^=\"javascript:\"]::after {\n // content: \"\";\n //}\n\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px\n page-break-inside: avoid;\n }\n\n //\n // Printing Tables:\n // https://web.archive.org/web/20180815150934/http://css-discuss.incutio.com/wiki/Printing_Tables\n //\n\n thead {\n display: table-header-group;\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Specify a size and min-width to make printing closer across browsers.\n // We don't set margin here because it breaks `size` in Chrome. We also\n // don't use `!important` on `size` as it breaks in Chrome.\n @page {\n size: $print-page-size;\n }\n body {\n min-width: $print-body-min-width !important;\n }\n .container {\n min-width: $print-body-min-width !important;\n }\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .badge {\n border: $border-width solid $black;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: $white !important;\n }\n }\n\n .table-bordered {\n th,\n td {\n border: 1px solid $gray-300 !important;\n }\n }\n\n .table-dark {\n color: inherit;\n\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $table-border-color;\n }\n }\n\n .table .thead-dark th {\n color: inherit;\n border-color: $table-border-color;\n }\n\n // Bootstrap specific changes end\n }\n}\n"]} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/dist/css/bootstrap.min.css b/npm_assets/node_modules/bootstrap/dist/css/bootstrap.min.css index 21d10bad3e..286cde4c09 100644 --- a/npm_assets/node_modules/bootstrap/dist/css/bootstrap.min.css +++ b/npm_assets/node_modules/bootstrap/dist/css/bootstrap.min.css @@ -1,7 +1,7 @@ /*! - * Bootstrap v4.5.2 (https://getbootstrap.com/) + * Bootstrap v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors * Copyright 2011-2020 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item,.nav-fill>.nav-link{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item{display:-ms-flexbox;display:flex}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{-ms-flex-preferred-size:350px;flex-basis:350px;max-width:350px;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;-ms-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;-webkit-print-color-adjust:exact;color-adjust:exact}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item,.nav-fill>.nav-link{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item{display:-ms-flexbox;display:flex}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{-ms-flex-preferred-size:350px;flex-basis:350px;max-width:350px;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;-ms-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} /*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/dist/css/bootstrap.min.css.map b/npm_assets/node_modules/bootstrap/dist/css/bootstrap.min.css.map index 3c23c178be..30a397279a 100644 --- a/npm_assets/node_modules/bootstrap/dist/css/bootstrap.min.css.map +++ b/npm_assets/node_modules/bootstrap/dist/css/bootstrap.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_interactions.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n","// Do not forget to update getting-started/theming.md!\n:root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\n // making it impossible to interact with the content\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Set the cursor for non-`<button>` buttons\n//\n// Details at https://github.com/twbs/bootstrap/pull/30562\n[role=\"button\"] {\n cursor: pointer;\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::-webkit-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\ninput[type=\"date\"].form-control,\ninput[type=\"time\"].form-control,\ninput[type=\"datetime-local\"].form-control,\ninput[type=\"month\"].form-control {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-align: center;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: -ms-inline-flexbox;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: stretch;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: -ms-flexbox;\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n -webkit-transform: translateX(0.75rem);\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -webkit-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n -webkit-transition: none;\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -moz-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n -moz-transition: none;\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n -ms-transition: none;\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n -ms-flex-preferred-size: 100%;\n flex-basis: 100%;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n}\n\n.card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n border-top: 0;\n}\n\n.card-body {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n }\n .card-group > .card {\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n -webkit-column-count: 3;\n -moz-column-count: 3;\n column-count: 3;\n -webkit-column-gap: 1.25rem;\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion {\n overflow-anchor: none;\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item {\n display: -ms-flexbox;\n display: flex;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: -ms-flexbox;\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: -ms-flexbox;\n display: flex;\n height: 1rem;\n overflow: hidden;\n line-height: 0;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n -webkit-animation: progress-bar-stripes 1s linear infinite;\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n -webkit-animation: none;\n animation: none;\n }\n}\n\n.media {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n.media-body {\n -ms-flex: 1;\n flex: 1;\n}\n\n.list-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: 0.25rem;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n}\n\n.list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.list-group-horizontal > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-sm > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-md > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-lg > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-xl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n.list-group-flush {\n border-radius: 0;\n}\n\n.list-group-flush > .list-group-item {\n border-width: 0 0 1px;\n}\n\n.list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n -ms-flex-preferred-size: 350px;\n flex-basis: 350px;\n max-width: 350px;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: -webkit-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n -webkit-transform: translate(0, -50px);\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n -webkit-transform: none;\n transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n -webkit-transform: scale(1.02);\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: -ms-flexbox;\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n height: -webkit-min-content;\n height: -moz-min-content;\n height: min-content;\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: end;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n height: -webkit-min-content;\n height: -moz-min-content;\n height: min-content;\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n transition: -webkit-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n -webkit-transform: none;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@-webkit-keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n -webkit-animation: spinner-border .75s linear infinite;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@-webkit-keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n -webkit-animation: spinner-grow .75s linear infinite;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.user-select-all {\n -webkit-user-select: all !important;\n -moz-user-select: all !important;\n -ms-user-select: all !important;\n user-select: all !important;\n}\n\n.user-select-auto {\n -webkit-user-select: auto !important;\n -moz-user-select: auto !important;\n -ms-user-select: auto !important;\n user-select: auto !important;\n}\n\n.user-select-none {\n -webkit-user-select: none !important;\n -moz-user-select: none !important;\n -ms-user-select: none !important;\n user-select: none !important;\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: -webkit-sticky !important;\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n .sticky-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","/*!\n * Bootstrap v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\ninput[type=\"date\"].form-control,\ninput[type=\"time\"].form-control,\ninput[type=\"datetime-local\"].form-control,\ninput[type=\"month\"].form-control {\n appearance: none;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n}\n\n.card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n border-top: 0;\n}\n\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion {\n overflow-anchor: none;\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item {\n display: flex;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n line-height: 0;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: 0.25rem;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n}\n\n.list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n.list-group-flush {\n border-radius: 0;\n}\n\n.list-group-flush > .list-group-item {\n border-width: 0 0 1px;\n}\n\n.list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n flex-basis: 350px;\n max-width: 350px;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n height: min-content;\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n height: min-content;\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.user-select-all {\n user-select: all !important;\n}\n\n.user-select-auto {\n user-select: auto !important;\n}\n\n.user-select-none {\n user-select: none !important;\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n &:hover { @content; }\n}\n\n@mixin hover-focus() {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus() {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active() {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { @include font-size($h1-font-size); }\nh2, .h2 { @include font-size($h2-font-size); }\nh3, .h3 { @include font-size($h3-font-size); }\nh4, .h4 { @include font-size($h4-font-size); }\nh5, .h5 { @include font-size($h5-font-size); }\nh6, .h6 { @include font-size($h6-font-size); }\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n @include font-size($display1-size);\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n @include font-size($display2-size);\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n @include font-size($display3-size);\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n @include font-size($display4-size);\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n @include font-size($small-font-size);\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled();\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled();\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size(90%);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n @include font-size($blockquote-font-size);\n}\n\n.blockquote-footer {\n display: block;\n @include font-size($blockquote-small-font-size);\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled() {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid();\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid();\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: $spacer / 2;\n line-height: 1;\n}\n\n.figure-caption {\n @include font-size($figure-caption-font-size);\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid() {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n @include deprecate(\"`img-retina()`\", \"v4.3.0\", \"v5\");\n}\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n $return: ();\n @each $value in $radius {\n @if type-of($value) == number {\n $return: append($return, max($value, 0));\n } @else {\n $return: append($return, $value);\n }\n }\n @return $return;\n}\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: valid-radius($radius);\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-right-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-left-radius($radius) {\n @if $enable-rounded {\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n","// Inline code\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n @include font-size(100%);\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n @include deprecate(\"The `make-container-max-widths` mixin\", \"v4.5.2\", \"v5\");\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n & > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @if $columns > 0 {\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n }\n\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n @if $columns > 0 {\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n margin-bottom: $spacer;\n color: $table-color;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: 2 * $table-border-width;\n }\n }\n}\n\n.table-borderless {\n th,\n td,\n thead th,\n tbody + tbody {\n border: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover() {\n color: $table-hover-color;\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover() {\n color: $table-dark-hover-color;\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n\n @if $border != null {\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $border;\n }\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover() {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n height: $input-height;\n padding: $input-padding-y $input-padding-x;\n font-family: $input-font-family;\n @include font-size($input-font-size);\n font-weight: $input-font-weight;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n @include border-radius($input-border-radius, 0);\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on `<select>`s in IE10+.\n &::-ms-expand {\n background-color: transparent;\n border: 0;\n }\n\n // Remove select outline from select box in FF\n &:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 $input-color;\n }\n\n // Customize the `:focus` state to imitate native WebKit styles.\n @include form-control-focus($ignore-warning: true);\n\n // Placeholder\n &::placeholder {\n color: $input-placeholder-color;\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n opacity: 1;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &:disabled,\n &[readonly] {\n background-color: $input-disabled-bg;\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n opacity: 1;\n }\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n &.form-control {\n appearance: none; // Fix appearance for date inputs in Safari\n }\n}\n\nselect.form-control {\n &:focus::-ms-value {\n // Suppress the nested default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: add($input-padding-y, $input-border-width);\n padding-bottom: add($input-padding-y, $input-border-width);\n margin-bottom: 0; // Override the `<label>/<legend>` default\n @include font-size(inherit); // Override the `<legend>` default\n line-height: $input-line-height;\n}\n\n.col-form-label-lg {\n padding-top: add($input-padding-y-lg, $input-border-width);\n padding-bottom: add($input-padding-y-lg, $input-border-width);\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n}\n\n.col-form-label-sm {\n padding-top: add($input-padding-y-sm, $input-border-width);\n padding-bottom: add($input-padding-y-sm, $input-border-width);\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n}\n\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: $input-padding-y 0;\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n @include font-size($input-font-size);\n line-height: $input-line-height;\n color: $input-plaintext-color;\n background-color: transparent;\n border: solid transparent;\n border-width: $input-border-width 0;\n\n &.form-control-sm,\n &.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// Repeated in `_input_group.scss` to avoid Sass extend issues.\n\n.form-control-sm {\n height: $input-height-sm;\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\n.form-control-lg {\n height: $input-height-lg;\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\n// stylelint-disable-next-line no-duplicate-selectors\nselect.form-control {\n &[size],\n &[multiple] {\n height: auto;\n }\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: $form-group-margin-bottom;\n}\n\n.form-text {\n display: block;\n margin-top: $form-text-margin-top;\n}\n\n\n// Form grid\n//\n// Special replacement for our grid system's `.row` for tighter form layouts.\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$form-grid-gutter-width / 2;\n margin-left: -$form-grid-gutter-width / 2;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: $form-grid-gutter-width / 2;\n padding-left: $form-grid-gutter-width / 2;\n }\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.form-check {\n position: relative;\n display: block;\n padding-left: $form-check-input-gutter;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: $form-check-input-margin-y;\n margin-left: -$form-check-input-gutter;\n\n // Use [disabled] and :disabled for workaround https://github.com/twbs/bootstrap/issues/28247\n &[disabled] ~ .form-check-label,\n &:disabled ~ .form-check-label {\n color: $text-muted;\n }\n}\n\n.form-check-label {\n margin-bottom: 0; // Override default `<label>` bottom margin\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0; // Override base .form-check\n margin-right: $form-check-inline-margin-x;\n\n // Undo .form-check-input defaults and add some `margin-right`.\n .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: $form-check-inline-input-margin-x;\n margin-left: 0;\n }\n}\n\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server side validation.\n\n@each $state, $data in $form-validation-states {\n @include form-validation-state($state, map-get($data, color), map-get($data, icon));\n}\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)\n\n // Because we use flex, the initial sizing of checkboxes is collapsed and\n // doesn't occupy the full-width (which is what we want for xs grid tier),\n // so we force that here.\n .form-check {\n width: 100%;\n }\n\n // Kick in the inline\n @include media-breakpoint-up(sm) {\n label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n\n // Inline-block all the things for \"inline\"\n .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n\n // Allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n\n // Make static controls behave like regular ones\n .form-control-plaintext {\n display: inline-block;\n }\n\n .input-group,\n .custom-select {\n width: auto;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match.\n .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: $form-check-input-margin-x;\n margin-left: 0;\n }\n\n .custom-control {\n align-items: center;\n justify-content: center;\n }\n .custom-control-label {\n margin-bottom: 0;\n }\n }\n}\n","// stylelint-disable property-blacklist\n@mixin transition($transition...) {\n @if length($transition) == 0 {\n $transition: $transition-base;\n }\n\n @if length($transition) > 1 {\n @each $value in $transition {\n @if $value == null or $value == none {\n @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n }\n }\n }\n\n @if $enable-transitions {\n @if nth($transition, 1) != null {\n transition: $transition;\n }\n\n @if $enable-prefers-reduced-motion-media-query and nth($transition, 1) != null and nth($transition, 1) != none {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n }\n}\n","// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus($ignore-warning: false) {\n &:focus {\n color: $input-focus-color;\n background-color: $input-focus-bg;\n border-color: $input-focus-border-color;\n outline: 0;\n @if $enable-shadows {\n @include box-shadow($input-box-shadow, $input-focus-box-shadow);\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: $input-focus-box-shadow;\n }\n }\n @include deprecate(\"The `form-control-focus()` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n\n// This mixin uses an `if()` technique to be compatible with Dart Sass\n// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details\n@mixin form-validation-state-selector($state) {\n @if ($state == \"valid\" or $state == \"invalid\") {\n .was-validated #{if(&, \"&\", \"\")}:#{$state},\n #{if(&, \"&\", \"\")}.is-#{$state} {\n @content;\n }\n } @else {\n #{if(&, \"&\", \"\")}.is-#{$state} {\n @content;\n }\n }\n}\n\n@mixin form-validation-state($state, $color, $icon) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n margin-top: $form-feedback-margin-top;\n @include font-size($form-feedback-font-size);\n color: $color;\n }\n\n .#{$state}-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%; // Contain to parent when possible\n padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\n margin-top: .1rem;\n @include font-size($form-feedback-tooltip-font-size);\n line-height: $form-feedback-tooltip-line-height;\n color: color-yiq($color);\n background-color: rgba($color, $form-feedback-tooltip-opacity);\n @include border-radius($form-feedback-tooltip-border-radius);\n }\n\n @include form-validation-state-selector($state) {\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n\n .form-control {\n @include form-validation-state-selector($state) {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-image: escape-svg($icon);\n background-repeat: no-repeat;\n background-position: right $input-height-inner-quarter center;\n background-size: $input-height-inner-half $input-height-inner-half;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n\n // stylelint-disable-next-line selector-no-qualifying-type\n textarea.form-control {\n @include form-validation-state-selector($state) {\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\n }\n }\n }\n\n .custom-select {\n @include form-validation-state-selector($state) {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $custom-select-feedback-icon-padding-right;\n background: $custom-select-background, escape-svg($icon) $custom-select-bg no-repeat $custom-select-feedback-icon-position / $custom-select-feedback-icon-size;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n\n .form-check-input {\n @include form-validation-state-selector($state) {\n ~ .form-check-label {\n color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .custom-control-input {\n @include form-validation-state-selector($state) {\n ~ .custom-control-label {\n color: $color;\n\n &::before {\n border-color: $color;\n }\n }\n\n &:checked {\n ~ .custom-control-label::before {\n border-color: lighten($color, 10%);\n @include gradient-bg(lighten($color, 10%));\n }\n }\n\n &:focus {\n ~ .custom-control-label::before {\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n &:not(:checked) ~ .custom-control-label::before {\n border-color: $color;\n }\n }\n }\n }\n\n // custom file\n .custom-file-input {\n @include form-validation-state-selector($state) {\n ~ .custom-file-label {\n border-color: $color;\n }\n\n &:focus {\n ~ .custom-file-label {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n}\n","// Gradients\n\n@mixin gradient-bg($color) {\n @if $enable-gradients {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\n } @else {\n background-color: $color;\n }\n}\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n background-repeat: repeat-x;\n}\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.btn {\n display: inline-block;\n font-family: $btn-font-family;\n font-weight: $btn-font-weight;\n color: $body-color;\n text-align: center;\n text-decoration: if($link-decoration == none, null, none);\n white-space: $btn-white-space;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: $btn-border-width solid transparent;\n @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);\n @include transition($btn-transition);\n\n @include hover() {\n color: $body-color;\n text-decoration: none;\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: $btn-focus-box-shadow;\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n opacity: $btn-disabled-opacity;\n @include box-shadow(none);\n }\n\n &:not(:disabled):not(.disabled) {\n cursor: if($enable-pointer-cursor-for-buttons, pointer, null);\n\n &:active,\n &.active {\n @include box-shadow($btn-active-box-shadow);\n\n &:focus {\n @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n }\n }\n }\n}\n\n// Future-proof disabling of clicks on `<a>` elements\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n .btn-#{$color} {\n @include button-variant($value, $value);\n }\n}\n\n@each $color, $value in $theme-colors {\n .btn-outline-#{$color} {\n @include button-outline-variant($value);\n }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n font-weight: $font-weight-normal;\n color: $link-color;\n text-decoration: $link-decoration;\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n\n &:focus,\n &.focus {\n text-decoration: $link-hover-decoration;\n }\n\n &:disabled,\n &.disabled {\n color: $btn-link-disabled-color;\n pointer-events: none;\n }\n\n // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\n}\n\n\n//\n// Block button\n//\n\n.btn-block {\n display: block;\n width: 100%;\n\n // Vertically space out multiple block buttons\n + .btn-block {\n margin-top: $btn-block-spacing-y;\n }\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\n color: color-yiq($background);\n @include gradient-bg($background);\n border-color: $border;\n @include box-shadow($btn-box-shadow);\n\n @include hover() {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n }\n\n &:focus,\n &.focus {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n @if $enable-shadows {\n @include box-shadow($btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n color: color-yiq($background);\n background-color: $background;\n border-color: $border;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n @if $enable-gradients {\n background-image: none; // Remove the gradient for the pressed/active state\n }\n border-color: $active-border;\n\n &:focus {\n @if $enable-shadows and $btn-active-box-shadow != none {\n @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n }\n}\n\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\n color: $color;\n border-color: $color;\n\n @include hover() {\n color: $color-hover;\n background-color: $active-background;\n border-color: $active-border;\n }\n\n &:focus,\n &.focus {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n\n &.disabled,\n &:disabled {\n color: $color;\n background-color: transparent;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n border-color: $active-border;\n\n &:focus {\n @if $enable-shadows and $btn-active-box-shadow != none {\n @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5));\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n }\n }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n line-height: $line-height;\n // Manually declare to provide an override to the browser default\n @include border-radius($border-radius, 0);\n}\n",".fade {\n @include transition($transition-fade);\n\n &:not(.show) {\n opacity: 0;\n }\n}\n\n.collapse {\n &:not(.show) {\n display: none;\n }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n}\n","// The dropdown wrapper (`<div>`)\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n\n // Generate the caret automatically\n @include caret();\n}\n\n// The dropdown menu\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: $zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: $dropdown-min-width;\n padding: $dropdown-padding-y 0;\n margin: $dropdown-spacer 0 0; // override default ul\n @include font-size($dropdown-font-size);\n color: $dropdown-color;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n list-style: none;\n background-color: $dropdown-bg;\n background-clip: padding-box;\n border: $dropdown-border-width solid $dropdown-border-color;\n @include border-radius($dropdown-border-radius);\n @include box-shadow($dropdown-box-shadow);\n}\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .dropdown-menu#{$infix}-left {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu#{$infix}-right {\n right: 0;\n left: auto;\n }\n }\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(up);\n }\n}\n\n.dropright {\n .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(right);\n &::after {\n vertical-align: 0;\n }\n }\n}\n\n.dropleft {\n .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(left);\n &::before {\n vertical-align: 0;\n }\n }\n}\n\n// When enabled Popper.js, reset basic dropdown position\n// stylelint-disable-next-line no-duplicate-selectors\n.dropdown-menu {\n &[x-placement^=\"top\"],\n &[x-placement^=\"right\"],\n &[x-placement^=\"bottom\"],\n &[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n }\n}\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n @include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y, true);\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n display: block;\n width: 100%; // For `<button>`s\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n clear: both;\n font-weight: $font-weight-normal;\n color: $dropdown-link-color;\n text-align: inherit; // For `<button>`s\n text-decoration: if($link-decoration == none, null, none);\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n background-color: transparent; // For `<button>`s\n border: 0; // For `<button>`s\n\n // Prevent dropdown overflow if there's no padding\n // See https://github.com/twbs/bootstrap/pull/27703\n @if $dropdown-padding-y == 0 {\n &:first-child {\n @include border-top-radius($dropdown-inner-border-radius);\n }\n\n &:last-child {\n @include border-bottom-radius($dropdown-inner-border-radius);\n }\n }\n\n @include hover-focus() {\n color: $dropdown-link-hover-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-hover-bg);\n }\n\n &.active,\n &:active {\n color: $dropdown-link-active-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-active-bg);\n }\n\n &.disabled,\n &:disabled {\n color: $dropdown-link-disabled-color;\n pointer-events: none;\n background-color: transparent;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: $dropdown-header-padding;\n margin-bottom: 0; // for use with heading elements\n @include font-size($font-size-sm);\n color: $dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Dropdown text\n.dropdown-item-text {\n display: block;\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n color: $dropdown-link-color;\n}\n","@mixin caret-down() {\n border-top: $caret-width solid;\n border-right: $caret-width solid transparent;\n border-bottom: 0;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up() {\n border-top: 0;\n border-right: $caret-width solid transparent;\n border-bottom: $caret-width solid;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-right() {\n border-top: $caret-width solid transparent;\n border-right: 0;\n border-bottom: $caret-width solid transparent;\n border-left: $caret-width solid;\n}\n\n@mixin caret-left() {\n border-top: $caret-width solid transparent;\n border-right: $caret-width solid;\n border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n @if $enable-caret {\n &::after {\n display: inline-block;\n margin-left: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @if $direction == down {\n @include caret-down();\n } @else if $direction == up {\n @include caret-up();\n } @else if $direction == right {\n @include caret-right();\n }\n }\n\n @if $direction == left {\n &::after {\n display: none;\n }\n\n &::before {\n display: inline-block;\n margin-right: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @include caret-left();\n }\n }\n\n &:empty::after {\n margin-left: 0;\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y, $ignore-warning: false) {\n height: 0;\n margin: $margin-y 0;\n overflow: hidden;\n border-top: 1px solid $color;\n @include deprecate(\"The `nav-divider()` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; // match .btn alignment given font-size hack above\n\n > .btn {\n position: relative;\n flex: 1 1 auto;\n\n // Bring the hover, focused, and \"active\" buttons to the front to overlay\n // the borders properly\n @include hover() {\n z-index: 1;\n }\n &:focus,\n &:active,\n &.active {\n z-index: 1;\n }\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n\n .input-group {\n width: auto;\n }\n}\n\n.btn-group {\n // Prevent double borders when buttons are next to each other\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-left: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-right-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-left-radius(0);\n }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n padding-right: $btn-padding-x * .75;\n padding-left: $btn-padding-x * .75;\n\n &::after,\n .dropup &::after,\n .dropright &::after {\n margin-left: 0;\n }\n\n .dropleft &::before {\n margin-right: 0;\n }\n}\n\n.btn-sm + .dropdown-toggle-split {\n padding-right: $btn-padding-x-sm * .75;\n padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n padding-right: $btn-padding-x-lg * .75;\n padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n @include box-shadow($btn-active-box-shadow);\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n @include box-shadow(none);\n }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n > .btn,\n > .btn-group {\n width: 100%;\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-top: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-bottom-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-top-radius(0);\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n.btn-group-toggle {\n > .btn,\n > .btn-group > .btn {\n margin-bottom: 0; // Override default `<label>` value\n\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap; // For form validation feedback\n align-items: stretch;\n width: 100%;\n\n > .form-control,\n > .form-control-plaintext,\n > .custom-select,\n > .custom-file {\n position: relative; // For focus state's z-index\n flex: 1 1 auto;\n width: 1%;\n min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size\n margin-bottom: 0;\n\n + .form-control,\n + .custom-select,\n + .custom-file {\n margin-left: -$input-border-width;\n }\n }\n\n // Bring the \"active\" form control to the top of surrounding elements\n > .form-control:focus,\n > .custom-select:focus,\n > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n }\n\n // Bring the custom file input above the label\n > .custom-file .custom-file-input:focus {\n z-index: 4;\n }\n\n > .form-control,\n > .custom-select {\n &:not(:last-child) { @include border-right-radius(0); }\n &:not(:first-child) { @include border-left-radius(0); }\n }\n\n // Custom file inputs have more complex markup, thus requiring different\n // border-radius overrides.\n > .custom-file {\n display: flex;\n align-items: center;\n\n &:not(:last-child) .custom-file-label,\n &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }\n &:not(:first-child) .custom-file-label { @include border-left-radius(0); }\n }\n}\n\n\n// Prepend and append\n//\n// While it requires one extra layer of HTML for each, dedicated prepend and\n// append elements allow us to 1) be less clever, 2) simplify our selectors, and\n// 3) support HTML5 form validation.\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n\n // Ensure buttons are always above inputs for more visually pleasing borders.\n // This isn't needed for `.input-group-text` since it shares the same border-color\n // as our inputs.\n .btn {\n position: relative;\n z-index: 2;\n\n &:focus {\n z-index: 3;\n }\n }\n\n .btn + .btn,\n .btn + .input-group-text,\n .input-group-text + .input-group-text,\n .input-group-text + .btn {\n margin-left: -$input-border-width;\n }\n}\n\n.input-group-prepend { margin-right: -$input-border-width; }\n.input-group-append { margin-left: -$input-border-width; }\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: $input-padding-y $input-padding-x;\n margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom\n @include font-size($input-font-size); // Match inputs\n font-weight: $font-weight-normal;\n line-height: $input-line-height;\n color: $input-group-addon-color;\n text-align: center;\n white-space: nowrap;\n background-color: $input-group-addon-bg;\n border: $input-border-width solid $input-group-addon-border-color;\n @include border-radius($input-border-radius);\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: $input-height-lg;\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: $input-height-sm;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: $custom-select-padding-x + $custom-select-indicator-padding;\n}\n\n\n// Prepend and append rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n @include border-right-radius(0);\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n @include border-left-radius(0);\n}\n","// Embedded icons from Open Iconic.\n// Released under MIT and copyright 2014 Waybury.\n// https://useiconic.com/open\n\n\n// Checkboxes and radios\n//\n// Base class takes care of all the key behavioral aspects.\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: $font-size-base * $line-height-base;\n padding-left: $custom-control-gutter + $custom-control-indicator-size;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: $custom-control-spacer-x;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1; // Put the input behind the label so it doesn't overlay text\n width: $custom-control-indicator-size;\n height: ($font-size-base * $line-height-base + $custom-control-indicator-size) / 2;\n opacity: 0;\n\n &:checked ~ .custom-control-label::before {\n color: $custom-control-indicator-checked-color;\n border-color: $custom-control-indicator-checked-border-color;\n @include gradient-bg($custom-control-indicator-checked-bg);\n @include box-shadow($custom-control-indicator-checked-box-shadow);\n }\n\n &:focus ~ .custom-control-label::before {\n // the mixin is not used here to make sure there is feedback\n @if $enable-shadows {\n box-shadow: $input-box-shadow, $input-focus-box-shadow;\n } @else {\n box-shadow: $custom-control-indicator-focus-box-shadow;\n }\n }\n\n &:focus:not(:checked) ~ .custom-control-label::before {\n border-color: $custom-control-indicator-focus-border-color;\n }\n\n &:not(:disabled):active ~ .custom-control-label::before {\n color: $custom-control-indicator-active-color;\n background-color: $custom-control-indicator-active-bg;\n border-color: $custom-control-indicator-active-border-color;\n @include box-shadow($custom-control-indicator-active-box-shadow);\n }\n\n // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247\n &[disabled],\n &:disabled {\n ~ .custom-control-label {\n color: $custom-control-label-disabled-color;\n\n &::before {\n background-color: $custom-control-indicator-disabled-bg;\n }\n }\n }\n}\n\n// Custom control indicators\n//\n// Build the custom controls out of pseudo-elements.\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n color: $custom-control-label-color;\n vertical-align: top;\n cursor: $custom-control-cursor;\n\n // Background-color and (when enabled) gradient\n &::before {\n position: absolute;\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n left: -($custom-control-gutter + $custom-control-indicator-size);\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n pointer-events: none;\n content: \"\";\n background-color: $custom-control-indicator-bg;\n border: $custom-control-indicator-border-color solid $custom-control-indicator-border-width;\n @include box-shadow($custom-control-indicator-box-shadow);\n }\n\n // Foreground (icon)\n &::after {\n position: absolute;\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n left: -($custom-control-gutter + $custom-control-indicator-size);\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n content: \"\";\n background: no-repeat 50% / #{$custom-control-indicator-bg-size};\n }\n}\n\n\n// Checkboxes\n//\n// Tweak just a few things for checkboxes.\n\n.custom-checkbox {\n .custom-control-label::before {\n @include border-radius($custom-checkbox-indicator-border-radius);\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-image: escape-svg($custom-checkbox-indicator-icon-checked);\n }\n }\n\n .custom-control-input:indeterminate ~ .custom-control-label {\n &::before {\n border-color: $custom-checkbox-indicator-indeterminate-border-color;\n @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);\n @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);\n }\n &::after {\n background-image: escape-svg($custom-checkbox-indicator-icon-indeterminate);\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n }\n &:indeterminate ~ .custom-control-label::before {\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n }\n }\n}\n\n// Radios\n//\n// Tweak just a few things for radios.\n\n.custom-radio {\n .custom-control-label::before {\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-radio-indicator-border-radius;\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-image: escape-svg($custom-radio-indicator-icon-checked);\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n }\n }\n}\n\n\n// switches\n//\n// Tweak a few things for switches\n\n.custom-switch {\n padding-left: $custom-switch-width + $custom-control-gutter;\n\n .custom-control-label {\n &::before {\n left: -($custom-switch-width + $custom-control-gutter);\n width: $custom-switch-width;\n pointer-events: all;\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-switch-indicator-border-radius;\n }\n\n &::after {\n top: add(($font-size-base * $line-height-base - $custom-control-indicator-size) / 2, $custom-control-indicator-border-width * 2);\n left: add(-($custom-switch-width + $custom-control-gutter), $custom-control-indicator-border-width * 2);\n width: $custom-switch-indicator-size;\n height: $custom-switch-indicator-size;\n background-color: $custom-control-indicator-border-color;\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-switch-indicator-border-radius;\n @include transition(transform .15s ease-in-out, $custom-forms-transition);\n }\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-color: $custom-control-indicator-bg;\n transform: translateX($custom-switch-width - $custom-control-indicator-size);\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n }\n }\n}\n\n\n// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// https://primer.github.io/.\n//\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: $custom-select-height;\n padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;\n font-family: $custom-select-font-family;\n @include font-size($custom-select-font-size);\n font-weight: $custom-select-font-weight;\n line-height: $custom-select-line-height;\n color: $custom-select-color;\n vertical-align: middle;\n background: $custom-select-bg $custom-select-background;\n border: $custom-select-border-width solid $custom-select-border-color;\n @include border-radius($custom-select-border-radius, 0);\n @include box-shadow($custom-select-box-shadow);\n appearance: none;\n\n &:focus {\n border-color: $custom-select-focus-border-color;\n outline: 0;\n @if $enable-shadows {\n @include box-shadow($custom-select-box-shadow, $custom-select-focus-box-shadow);\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: $custom-select-focus-box-shadow;\n }\n\n &::-ms-value {\n // For visual consistency with other platforms/browsers,\n // suppress the default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n }\n\n &[multiple],\n &[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: $custom-select-padding-x;\n background-image: none;\n }\n\n &:disabled {\n color: $custom-select-disabled-color;\n background-color: $custom-select-disabled-bg;\n }\n\n // Hides the default caret in IE11\n &::-ms-expand {\n display: none;\n }\n\n // Remove outline from select box in FF\n &:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 $custom-select-color;\n }\n}\n\n.custom-select-sm {\n height: $custom-select-height-sm;\n padding-top: $custom-select-padding-y-sm;\n padding-bottom: $custom-select-padding-y-sm;\n padding-left: $custom-select-padding-x-sm;\n @include font-size($custom-select-font-size-sm);\n}\n\n.custom-select-lg {\n height: $custom-select-height-lg;\n padding-top: $custom-select-padding-y-lg;\n padding-bottom: $custom-select-padding-y-lg;\n padding-left: $custom-select-padding-x-lg;\n @include font-size($custom-select-font-size-lg);\n}\n\n\n// File\n//\n// Custom file input.\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: $custom-file-height;\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: $custom-file-height;\n margin: 0;\n opacity: 0;\n\n &:focus ~ .custom-file-label {\n border-color: $custom-file-focus-border-color;\n box-shadow: $custom-file-focus-box-shadow;\n }\n\n // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247\n &[disabled] ~ .custom-file-label,\n &:disabled ~ .custom-file-label {\n background-color: $custom-file-disabled-bg;\n }\n\n @each $lang, $value in $custom-file-text {\n &:lang(#{$lang}) ~ .custom-file-label::after {\n content: $value;\n }\n }\n\n ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n }\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: $custom-file-height;\n padding: $custom-file-padding-y $custom-file-padding-x;\n font-family: $custom-file-font-family;\n font-weight: $custom-file-font-weight;\n line-height: $custom-file-line-height;\n color: $custom-file-color;\n background-color: $custom-file-bg;\n border: $custom-file-border-width solid $custom-file-border-color;\n @include border-radius($custom-file-border-radius);\n @include box-shadow($custom-file-box-shadow);\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: $custom-file-height-inner;\n padding: $custom-file-padding-y $custom-file-padding-x;\n line-height: $custom-file-line-height;\n color: $custom-file-button-color;\n content: \"Browse\";\n @include gradient-bg($custom-file-button-bg);\n border-left: inherit;\n @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);\n }\n}\n\n// Range\n//\n// Style range inputs the same across browsers. Vendor-specific rules for pseudo\n// elements cannot be mixed. As such, there are no shared styles for focus or\n// active states on prefixed selectors.\n\n.custom-range {\n width: 100%;\n height: add($custom-range-thumb-height, $custom-range-thumb-focus-box-shadow-width * 2);\n padding: 0; // Need to reset padding\n background-color: transparent;\n appearance: none;\n\n &:focus {\n outline: none;\n\n // Pseudo-elements must be split across multiple rulesets to have an effect.\n // No box-shadow() mixin for focus accessibility.\n &::-webkit-slider-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n &::-moz-range-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n &::-ms-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n }\n\n &::-moz-focus-outer {\n border: 0;\n }\n\n &::-webkit-slider-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: ($custom-range-track-height - $custom-range-thumb-height) / 2; // Webkit specific\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-webkit-slider-runnable-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent; // Why?\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent;\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-moz-range-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-moz-range-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent; // Firefox specific?\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: 0; // Edge specific\n margin-right: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n margin-left: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-ms-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: transparent;\n border-color: transparent;\n border-width: $custom-range-thumb-height / 2;\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-fill-lower {\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &::-ms-fill-upper {\n margin-right: 15px; // arbitrary?\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &:disabled {\n &::-webkit-slider-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n\n &::-webkit-slider-runnable-track {\n cursor: default;\n }\n\n &::-moz-range-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n\n &::-moz-range-track {\n cursor: default;\n }\n\n &::-ms-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n }\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n @include transition($custom-forms-transition);\n}\n","// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s, `<ul>`s or `<ol>`s.\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: $nav-link-padding-y $nav-link-padding-x;\n text-decoration: if($link-decoration == none, null, none);\n\n @include hover-focus() {\n text-decoration: none;\n }\n\n // Disabled state lightens text\n &.disabled {\n color: $nav-link-disabled-color;\n pointer-events: none;\n cursor: default;\n }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\n\n .nav-item {\n margin-bottom: -$nav-tabs-border-width;\n }\n\n .nav-link {\n border: $nav-tabs-border-width solid transparent;\n @include border-top-radius($nav-tabs-border-radius);\n\n @include hover-focus() {\n border-color: $nav-tabs-link-hover-border-color;\n }\n\n &.disabled {\n color: $nav-link-disabled-color;\n background-color: transparent;\n border-color: transparent;\n }\n }\n\n .nav-link.active,\n .nav-item.show .nav-link {\n color: $nav-tabs-link-active-color;\n background-color: $nav-tabs-link-active-bg;\n border-color: $nav-tabs-link-active-border-color;\n }\n\n .dropdown-menu {\n // Make dropdown border overlap tab border\n margin-top: -$nav-tabs-border-width;\n // Remove the top rounded corners here since there is a hard edge above the menu\n @include border-top-radius(0);\n }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n .nav-link {\n @include border-radius($nav-pills-border-radius);\n }\n\n .nav-link.active,\n .show > .nav-link {\n color: $nav-pills-link-active-color;\n background-color: $nav-pills-link-active-bg;\n }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n > .nav-link,\n .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n}\n\n.nav-justified {\n > .nav-link,\n .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n","// Contents\n//\n// Navbar\n// Navbar brand\n// Navbar nav\n// Navbar text\n// Navbar divider\n// Responsive navbar\n// Navbar position\n// Navbar themes\n\n\n// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap; // allow us to do the line break for collapsing content\n align-items: center;\n justify-content: space-between; // space out brand from logo\n padding: $navbar-padding-y $navbar-padding-x;\n\n // Because flex properties aren't inherited, we need to redeclare these first\n // few properties so that content nested within behave properly.\n %container-flex-properties {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n }\n\n .container,\n .container-fluid {\n @extend %container-flex-properties;\n }\n\n @each $breakpoint, $container-max-width in $container-max-widths {\n > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {\n @extend %container-flex-properties;\n }\n }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n display: inline-block;\n padding-top: $navbar-brand-padding-y;\n padding-bottom: $navbar-brand-padding-y;\n margin-right: $navbar-padding-x;\n @include font-size($navbar-brand-font-size);\n line-height: inherit;\n white-space: nowrap;\n\n @include hover-focus() {\n text-decoration: none;\n }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n display: flex;\n flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-link {\n padding-right: 0;\n padding-left: 0;\n }\n\n .dropdown-menu {\n position: static;\n float: none;\n }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n display: inline-block;\n padding-top: $nav-link-padding-y;\n padding-bottom: $nav-link-padding-y;\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n // For always expanded or extra full navbars, ensure content aligns itself\n // properly vertically. Can be easily overridden with flex utilities.\n align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\n @include font-size($navbar-toggler-font-size);\n line-height: 1;\n background-color: transparent; // remove default button style\n border: $border-width solid transparent; // remove default button style\n @include border-radius($navbar-toggler-border-radius);\n\n @include hover-focus() {\n text-decoration: none;\n }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n %container-navbar-expand-#{$breakpoint} {\n padding-right: 0;\n padding-left: 0;\n }\n\n > .container,\n > .container-fluid {\n @extend %container-navbar-expand-#{$breakpoint};\n }\n\n @each $size, $container-max-width in $container-max-widths {\n > .container#{breakpoint-infix($size, $container-max-widths)} {\n @extend %container-navbar-expand-#{$breakpoint};\n }\n }\n }\n\n @include media-breakpoint-up($next) {\n flex-flow: row nowrap;\n justify-content: flex-start;\n\n .navbar-nav {\n flex-direction: row;\n\n .dropdown-menu {\n position: absolute;\n }\n\n .nav-link {\n padding-right: $navbar-nav-link-padding-x;\n padding-left: $navbar-nav-link-padding-x;\n }\n }\n\n // For nesting containers, have to redeclare for alignment purposes\n %container-nesting-#{$breakpoint} {\n flex-wrap: nowrap;\n }\n\n > .container,\n > .container-fluid {\n @extend %container-nesting-#{$breakpoint};\n }\n\n @each $size, $container-max-width in $container-max-widths {\n > .container#{breakpoint-infix($size, $container-max-widths)} {\n @extend %container-nesting-#{$breakpoint};\n }\n }\n\n .navbar-collapse {\n display: flex !important; // stylelint-disable-line declaration-no-important\n\n // Changes flex-bases to auto because of an IE10 bug\n flex-basis: auto;\n }\n\n .navbar-toggler {\n display: none;\n }\n }\n }\n }\n}\n\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n// Dark links against a light background\n.navbar-light {\n .navbar-brand {\n color: $navbar-light-brand-color;\n\n @include hover-focus() {\n color: $navbar-light-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-light-color;\n\n @include hover-focus() {\n color: $navbar-light-hover-color;\n }\n\n &.disabled {\n color: $navbar-light-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-light-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-light-color;\n border-color: $navbar-light-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: escape-svg($navbar-light-toggler-icon-bg);\n }\n\n .navbar-text {\n color: $navbar-light-color;\n a {\n color: $navbar-light-active-color;\n\n @include hover-focus() {\n color: $navbar-light-active-color;\n }\n }\n }\n}\n\n// White links against a dark background\n.navbar-dark {\n .navbar-brand {\n color: $navbar-dark-brand-color;\n\n @include hover-focus() {\n color: $navbar-dark-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-dark-color;\n\n @include hover-focus() {\n color: $navbar-dark-hover-color;\n }\n\n &.disabled {\n color: $navbar-dark-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-dark-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-dark-color;\n border-color: $navbar-dark-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: escape-svg($navbar-dark-toggler-icon-bg);\n }\n\n .navbar-text {\n color: $navbar-dark-color;\n a {\n color: $navbar-dark-active-color;\n\n @include hover-focus() {\n color: $navbar-dark-active-color;\n }\n }\n }\n}\n","//\n// Base styles\n//\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\n height: $card-height;\n word-wrap: break-word;\n background-color: $card-bg;\n background-clip: border-box;\n border: $card-border-width solid $card-border-color;\n @include border-radius($card-border-radius);\n\n > hr {\n margin-right: 0;\n margin-left: 0;\n }\n\n > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n\n &:first-child {\n border-top-width: 0;\n @include border-top-radius($card-inner-border-radius);\n }\n\n &:last-child {\n border-bottom-width: 0;\n @include border-bottom-radius($card-inner-border-radius);\n }\n }\n\n // Due to specificity of the above selector (`.card > .list-group`), we must\n // use a child selector here to prevent double borders.\n > .card-header + .list-group,\n > .list-group + .card-footer {\n border-top: 0;\n }\n}\n\n.card-body {\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n // as much space as possible, ensuring footers are aligned to the bottom.\n flex: 1 1 auto;\n // Workaround for the image size bug in IE\n // See: https://github.com/twbs/bootstrap/pull/28855\n min-height: 1px;\n padding: $card-spacer-x;\n color: $card-color;\n}\n\n.card-title {\n margin-bottom: $card-spacer-y;\n}\n\n.card-subtitle {\n margin-top: -$card-spacer-y / 2;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link {\n @include hover() {\n text-decoration: none;\n }\n\n + .card-link {\n margin-left: $card-spacer-x;\n }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n padding: $card-spacer-y $card-spacer-x;\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\n color: $card-cap-color;\n background-color: $card-cap-bg;\n border-bottom: $card-border-width solid $card-border-color;\n\n &:first-child {\n @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\n }\n}\n\n.card-footer {\n padding: $card-spacer-y $card-spacer-x;\n color: $card-cap-color;\n background-color: $card-cap-bg;\n border-top: $card-border-width solid $card-border-color;\n\n &:last-child {\n @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\n }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n margin-right: -$card-spacer-x / 2;\n margin-bottom: -$card-spacer-y;\n margin-left: -$card-spacer-x / 2;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -$card-spacer-x / 2;\n margin-left: -$card-spacer-x / 2;\n}\n\n// Card image\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: $card-img-overlay-padding;\n @include border-radius($card-inner-border-radius);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0; // For IE: https://github.com/twbs/bootstrap/issues/29396\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n}\n\n.card-img,\n.card-img-top {\n @include border-top-radius($card-inner-border-radius);\n}\n\n.card-img,\n.card-img-bottom {\n @include border-bottom-radius($card-inner-border-radius);\n}\n\n\n// Card deck\n\n.card-deck {\n .card {\n margin-bottom: $card-deck-margin;\n }\n\n @include media-breakpoint-up(sm) {\n display: flex;\n flex-flow: row wrap;\n margin-right: -$card-deck-margin;\n margin-left: -$card-deck-margin;\n\n .card {\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n margin-right: $card-deck-margin;\n margin-bottom: 0; // Override the default\n margin-left: $card-deck-margin;\n }\n }\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n margin-bottom: $card-group-margin;\n }\n\n @include media-breakpoint-up(sm) {\n display: flex;\n flex-flow: row wrap;\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n margin-bottom: 0;\n\n + .card {\n margin-left: 0;\n border-left: 0;\n }\n\n // Handle rounded corners\n @if $enable-rounded {\n &:not(:last-child) {\n @include border-right-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-blacklist\n border-top-right-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-blacklist\n border-bottom-right-radius: 0;\n }\n }\n\n &:not(:first-child) {\n @include border-left-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-blacklist\n border-top-left-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-blacklist\n border-bottom-left-radius: 0;\n }\n }\n }\n }\n }\n}\n\n\n//\n// Columns\n//\n\n.card-columns {\n .card {\n margin-bottom: $card-columns-margin;\n }\n\n @include media-breakpoint-up(sm) {\n column-count: $card-columns-count;\n column-gap: $card-columns-gap;\n orphans: 1;\n widows: 1;\n\n .card {\n display: inline-block; // Don't let them vertically span multiple columns\n width: 100%; // Don't let their width change\n }\n }\n}\n\n\n//\n// Accordion\n//\n\n.accordion {\n overflow-anchor: none;\n\n > .card {\n overflow: hidden;\n\n &:not(:last-of-type) {\n border-bottom: 0;\n @include border-bottom-radius(0);\n }\n\n &:not(:first-of-type) {\n @include border-top-radius(0);\n }\n\n > .card-header {\n @include border-radius(0);\n margin-bottom: -$card-border-width;\n }\n }\n}\n",".breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: $breadcrumb-padding-y $breadcrumb-padding-x;\n margin-bottom: $breadcrumb-margin-bottom;\n @include font-size($breadcrumb-font-size);\n list-style: none;\n background-color: $breadcrumb-bg;\n @include border-radius($breadcrumb-border-radius);\n}\n\n.breadcrumb-item {\n display: flex;\n\n // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n + .breadcrumb-item {\n padding-left: $breadcrumb-item-padding;\n\n &::before {\n display: inline-block; // Suppress underlining of the separator in modern browsers\n padding-right: $breadcrumb-item-padding;\n color: $breadcrumb-divider-color;\n content: escape-svg($breadcrumb-divider);\n }\n }\n\n // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built\n // without `<ul>`s. The `::before` pseudo-element generates an element\n // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.\n //\n // To trick IE into suppressing the underline, we give the pseudo-element an\n // underline and then immediately remove it.\n + .breadcrumb-item:hover::before {\n text-decoration: underline;\n }\n // stylelint-disable-next-line no-duplicate-selectors\n + .breadcrumb-item:hover::before {\n text-decoration: none;\n }\n\n &.active {\n color: $breadcrumb-active-color;\n }\n}\n",".pagination {\n display: flex;\n @include list-unstyled();\n @include border-radius();\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: $pagination-padding-y $pagination-padding-x;\n margin-left: -$pagination-border-width;\n line-height: $pagination-line-height;\n color: $pagination-color;\n text-decoration: if($link-decoration == none, null, none);\n background-color: $pagination-bg;\n border: $pagination-border-width solid $pagination-border-color;\n\n &:hover {\n z-index: 2;\n color: $pagination-hover-color;\n text-decoration: none;\n background-color: $pagination-hover-bg;\n border-color: $pagination-hover-border-color;\n }\n\n &:focus {\n z-index: 3;\n outline: $pagination-focus-outline;\n box-shadow: $pagination-focus-box-shadow;\n }\n}\n\n.page-item {\n &:first-child {\n .page-link {\n margin-left: 0;\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n\n &.active .page-link {\n z-index: 3;\n color: $pagination-active-color;\n background-color: $pagination-active-bg;\n border-color: $pagination-active-border-color;\n }\n\n &.disabled .page-link {\n color: $pagination-disabled-color;\n pointer-events: none;\n // Opinionated: remove the \"hand\" cursor set previously for .page-link\n cursor: auto;\n background-color: $pagination-disabled-bg;\n border-color: $pagination-disabled-border-color;\n }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);\n}\n\n.pagination-sm {\n @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);\n}\n","// Pagination\n\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n .page-link {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n line-height: $line-height;\n }\n\n .page-item {\n &:first-child {\n .page-link {\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n }\n}\n","// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n display: inline-block;\n padding: $badge-padding-y $badge-padding-x;\n @include font-size($badge-font-size);\n font-weight: $badge-font-weight;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n @include border-radius($badge-border-radius);\n @include transition($badge-transition);\n\n @at-root a#{&} {\n @include hover-focus() {\n text-decoration: none;\n }\n }\n\n // Empty badges collapse automatically\n &:empty {\n display: none;\n }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n// Pill badges\n//\n// Make them extra rounded with a modifier to replace v3's badges.\n\n.badge-pill {\n padding-right: $badge-pill-padding-x;\n padding-left: $badge-pill-padding-x;\n @include border-radius($badge-pill-border-radius);\n}\n\n// Colors\n//\n// Contextual variations (linked badges get darker on :hover).\n\n@each $color, $value in $theme-colors {\n .badge-#{$color} {\n @include badge-variant($value);\n }\n}\n","@mixin badge-variant($bg) {\n color: color-yiq($bg);\n background-color: $bg;\n\n @at-root a#{&} {\n @include hover-focus() {\n color: color-yiq($bg);\n background-color: darken($bg, 10%);\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: 0 0 0 $badge-focus-width rgba($bg, .5);\n }\n }\n}\n",".jumbotron {\n padding: $jumbotron-padding ($jumbotron-padding / 2);\n margin-bottom: $jumbotron-padding;\n color: $jumbotron-color;\n background-color: $jumbotron-bg;\n @include border-radius($border-radius-lg);\n\n @include media-breakpoint-up(sm) {\n padding: ($jumbotron-padding * 2) $jumbotron-padding;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n @include border-radius(0);\n}\n","//\n// Base styles\n//\n\n.alert {\n position: relative;\n padding: $alert-padding-y $alert-padding-x;\n margin-bottom: $alert-margin-bottom;\n border: $alert-border-width solid transparent;\n @include border-radius($alert-border-radius);\n}\n\n// Headings for larger alerts\n.alert-heading {\n // Specified to prevent conflicts of changing $headings-color\n color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n padding-right: $close-font-size + $alert-padding-x * 2;\n\n // Adjust close link position\n .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: $alert-padding-y $alert-padding-x;\n color: inherit;\n }\n}\n\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $color, $value in $theme-colors {\n .alert-#{$color} {\n @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\n }\n}\n","@mixin alert-variant($background, $border, $color) {\n color: $color;\n @include gradient-bg($background);\n border-color: $border;\n\n hr {\n border-top-color: darken($border, 5%);\n }\n\n .alert-link {\n color: darken($color, 10%);\n }\n}\n","// Disable animation if transitions are disabled\n@if $enable-transitions {\n @keyframes progress-bar-stripes {\n from { background-position: $progress-height 0; }\n to { background-position: 0 0; }\n }\n}\n\n.progress {\n display: flex;\n height: $progress-height;\n overflow: hidden; // force rounded corners by cropping it\n line-height: 0;\n @include font-size($progress-font-size);\n background-color: $progress-bg;\n @include border-radius($progress-border-radius);\n @include box-shadow($progress-box-shadow);\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: $progress-bar-color;\n text-align: center;\n white-space: nowrap;\n background-color: $progress-bar-bg;\n @include transition($progress-bar-transition);\n}\n\n.progress-bar-striped {\n @include gradient-striped();\n background-size: $progress-height $progress-height;\n}\n\n@if $enable-transitions {\n .progress-bar-animated {\n animation: progress-bar-stripes $progress-bar-animation-timing;\n\n @if $enable-prefers-reduced-motion-media-query {\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n }\n }\n}\n",".media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n","// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n display: flex;\n flex-direction: column;\n\n // No need to set list-style: none; since .list-group-item is block level\n padding-left: 0; // reset padding because ul and ol\n margin-bottom: 0;\n @include border-radius($list-group-border-radius);\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n width: 100%; // For `<button>`s (anchors become 100% by default though)\n color: $list-group-action-color;\n text-align: inherit; // For `<button>`s (anchors inherit)\n\n // Hover state\n @include hover-focus() {\n z-index: 1; // Place hover/focus items above their siblings for proper border styling\n color: $list-group-action-hover-color;\n text-decoration: none;\n background-color: $list-group-hover-bg;\n }\n\n &:active {\n color: $list-group-action-active-color;\n background-color: $list-group-action-active-bg;\n }\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: $list-group-item-padding-y $list-group-item-padding-x;\n color: $list-group-color;\n text-decoration: if($link-decoration == none, null, none);\n background-color: $list-group-bg;\n border: $list-group-border-width solid $list-group-border-color;\n\n &:first-child {\n @include border-top-radius(inherit);\n }\n\n &:last-child {\n @include border-bottom-radius(inherit);\n }\n\n &.disabled,\n &:disabled {\n color: $list-group-disabled-color;\n pointer-events: none;\n background-color: $list-group-disabled-bg;\n }\n\n // Include both here for `<a>`s and `<button>`s\n &.active {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: $list-group-active-color;\n background-color: $list-group-active-bg;\n border-color: $list-group-active-border-color;\n }\n\n & + & {\n border-top-width: 0;\n\n &.active {\n margin-top: -$list-group-border-width;\n border-top-width: $list-group-border-width;\n }\n }\n}\n\n\n// Horizontal\n//\n// Change the layout of list group items from vertical (default) to horizontal.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .list-group-horizontal#{$infix} {\n flex-direction: row;\n\n > .list-group-item {\n &:first-child {\n @include border-bottom-left-radius($list-group-border-radius);\n @include border-top-right-radius(0);\n }\n\n &:last-child {\n @include border-top-right-radius($list-group-border-radius);\n @include border-bottom-left-radius(0);\n }\n\n &.active {\n margin-top: 0;\n }\n\n & + .list-group-item {\n border-top-width: $list-group-border-width;\n border-left-width: 0;\n\n &.active {\n margin-left: -$list-group-border-width;\n border-left-width: $list-group-border-width;\n }\n }\n }\n }\n }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n @include border-radius(0);\n\n > .list-group-item {\n border-width: 0 0 $list-group-border-width;\n\n &:last-child {\n border-bottom-width: 0;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $color, $value in $theme-colors {\n @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));\n}\n","// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n .list-group-item-#{$state} {\n color: $color;\n background-color: $background;\n\n &.list-group-item-action {\n @include hover-focus() {\n color: $color;\n background-color: darken($background, 5%);\n }\n\n &.active {\n color: $white;\n background-color: $color;\n border-color: $color;\n }\n }\n }\n}\n",".close {\n float: right;\n @include font-size($close-font-size);\n font-weight: $close-font-weight;\n line-height: 1;\n color: $close-color;\n text-shadow: $close-text-shadow;\n opacity: .5;\n\n // Override <a>'s hover style\n @include hover() {\n color: $close-color;\n text-decoration: none;\n }\n\n &:not(:disabled):not(.disabled) {\n @include hover-focus() {\n opacity: .75;\n }\n }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n// stylelint-disable-next-line selector-no-qualifying-type\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n}\n\n// Future-proof disabling of clicks on `<a>` elements\n\n// stylelint-disable-next-line selector-no-qualifying-type\na.close.disabled {\n pointer-events: none;\n}\n",".toast {\n // Prevents from shrinking in IE11, when in a flex container\n // See https://github.com/twbs/bootstrap/issues/28341\n flex-basis: $toast-max-width;\n max-width: $toast-max-width;\n @include font-size($toast-font-size);\n color: $toast-color;\n background-color: $toast-background-color;\n background-clip: padding-box;\n border: $toast-border-width solid $toast-border-color;\n box-shadow: $toast-box-shadow;\n opacity: 0;\n @include border-radius($toast-border-radius);\n\n &:not(:last-child) {\n margin-bottom: $toast-padding-x;\n }\n\n &.showing {\n opacity: 1;\n }\n\n &.show {\n display: block;\n opacity: 1;\n }\n\n &.hide {\n display: none;\n }\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: $toast-padding-y $toast-padding-x;\n color: $toast-header-color;\n background-color: $toast-header-background-color;\n background-clip: padding-box;\n border-bottom: $toast-border-width solid $toast-header-border-color;\n @include border-top-radius(subtract($toast-border-radius, $toast-border-width));\n}\n\n.toast-body {\n padding: $toast-padding-x; // apply to both vertical and horizontal\n}\n","// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and stuff\n\n\n.modal-open {\n // Kill the scroll on the body\n overflow: hidden;\n\n .modal {\n overflow-x: hidden;\n overflow-y: auto;\n }\n}\n\n// Container that the modal scrolls within\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n // See also https://github.com/twbs/bootstrap/issues/17695\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: $modal-dialog-margin;\n // allow clicks to pass through for custom click handling to close modal\n pointer-events: none;\n\n // When fading in the modal, animate it to slide down\n .modal.fade & {\n @include transition($modal-transition);\n transform: $modal-fade-transform;\n }\n .modal.show & {\n transform: $modal-show-transform;\n }\n\n // When trying to close, animate focus to scale\n .modal.modal-static & {\n transform: $modal-scale-transform;\n }\n}\n\n.modal-dialog-scrollable {\n display: flex; // IE10/11\n max-height: subtract(100%, $modal-dialog-margin * 2);\n\n .modal-content {\n max-height: subtract(100vh, $modal-dialog-margin * 2); // IE10/11\n overflow: hidden;\n }\n\n .modal-header,\n .modal-footer {\n flex-shrink: 0;\n }\n\n .modal-body {\n overflow-y: auto;\n }\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: subtract(100%, $modal-dialog-margin * 2);\n\n // Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)\n &::before {\n display: block; // IE10\n height: subtract(100vh, $modal-dialog-margin * 2);\n height: min-content; // Reset height to 0 except on IE\n content: \"\";\n }\n\n // Ensure `.modal-body` shows scrollbar (IE10/11)\n &.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n\n .modal-content {\n max-height: none;\n }\n\n &::before {\n content: none;\n }\n }\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n // counteract the pointer-events: none; in the .modal-dialog\n color: $modal-content-color;\n pointer-events: auto;\n background-color: $modal-content-bg;\n background-clip: padding-box;\n border: $modal-content-border-width solid $modal-content-border-color;\n @include border-radius($modal-content-border-radius);\n @include box-shadow($modal-content-box-shadow-xs);\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal-backdrop;\n width: 100vw;\n height: 100vh;\n background-color: $modal-backdrop-bg;\n\n // Fade for backdrop\n &.fade { opacity: 0; }\n &.show { opacity: $modal-backdrop-opacity; }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n display: flex;\n align-items: flex-start; // so the close btn always stays on the upper right corner\n justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n padding: $modal-header-padding;\n border-bottom: $modal-header-border-width solid $modal-header-border-color;\n @include border-top-radius($modal-content-inner-border-radius);\n\n .close {\n padding: $modal-header-padding;\n // auto on the left force icon to the right even when there is no .modal-title\n margin: (-$modal-header-padding-y) (-$modal-header-padding-x) (-$modal-header-padding-y) auto;\n }\n}\n\n// Title text within header\n.modal-title {\n margin-bottom: 0;\n line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n // Enable `flex-grow: 1` so that the body take up as much space as possible\n // when there should be a fixed height on `.modal-dialog`.\n flex: 1 1 auto;\n padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center; // vertically center\n justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n padding: $modal-inner-padding - $modal-footer-margin-between / 2;\n border-top: $modal-footer-border-width solid $modal-footer-border-color;\n @include border-bottom-radius($modal-content-inner-border-radius);\n\n // Place margin between footer elements\n // This solution is far from ideal because of the universal selector usage,\n // but is needed to fix https://github.com/twbs/bootstrap/issues/24800\n > * {\n margin: $modal-footer-margin-between / 2;\n }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n max-width: $modal-md;\n margin: $modal-dialog-margin-y-sm-up auto;\n }\n\n .modal-dialog-scrollable {\n max-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\n\n .modal-content {\n max-height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);\n }\n }\n\n .modal-dialog-centered {\n min-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\n\n &::before {\n height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);\n height: min-content;\n }\n }\n\n .modal-content {\n @include box-shadow($modal-content-box-shadow-sm-up);\n }\n\n .modal-sm { max-width: $modal-sm; }\n}\n\n@include media-breakpoint-up(lg) {\n .modal-lg,\n .modal-xl {\n max-width: $modal-lg;\n }\n}\n\n@include media-breakpoint-up(xl) {\n .modal-xl { max-width: $modal-xl; }\n}\n","// Base class\n.tooltip {\n position: absolute;\n z-index: $zindex-tooltip;\n display: block;\n margin: $tooltip-margin;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($tooltip-font-size);\n // Allow breaking very long words so they don't overflow the tooltip's bounds\n word-wrap: break-word;\n opacity: 0;\n\n &.show { opacity: $tooltip-opacity; }\n\n .arrow {\n position: absolute;\n display: block;\n width: $tooltip-arrow-width;\n height: $tooltip-arrow-height;\n\n &::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-tooltip-top {\n padding: $tooltip-arrow-height 0;\n\n .arrow {\n bottom: 0;\n\n &::before {\n top: 0;\n border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-top-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-right {\n padding: 0 $tooltip-arrow-height;\n\n .arrow {\n left: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n right: 0;\n border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-right-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-bottom {\n padding: $tooltip-arrow-height 0;\n\n .arrow {\n top: 0;\n\n &::before {\n bottom: 0;\n border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-bottom-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-left {\n padding: 0 $tooltip-arrow-height;\n\n .arrow {\n right: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n left: 0;\n border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-left-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-tooltip-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-tooltip-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-tooltip-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-tooltip-left;\n }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: $tooltip-max-width;\n padding: $tooltip-padding-y $tooltip-padding-x;\n color: $tooltip-color;\n text-align: center;\n background-color: $tooltip-bg;\n @include border-radius($tooltip-border-radius);\n}\n","@mixin reset-text() {\n font-family: $font-family-base;\n // We deliberately do NOT reset font-size or word-wrap.\n font-style: normal;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n}\n",".popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: $zindex-popover;\n display: block;\n max-width: $popover-max-width;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($popover-font-size);\n // Allow breaking very long words so they don't overflow the popover's bounds\n word-wrap: break-word;\n background-color: $popover-bg;\n background-clip: padding-box;\n border: $popover-border-width solid $popover-border-color;\n @include border-radius($popover-border-radius);\n @include box-shadow($popover-box-shadow);\n\n .arrow {\n position: absolute;\n display: block;\n width: $popover-arrow-width;\n height: $popover-arrow-height;\n margin: 0 $popover-border-radius;\n\n &::before,\n &::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-popover-top {\n margin-bottom: $popover-arrow-height;\n\n > .arrow {\n bottom: subtract(-$popover-arrow-height, $popover-border-width);\n\n &::before {\n bottom: 0;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-outer-color;\n }\n\n &::after {\n bottom: $popover-border-width;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-right {\n margin-left: $popover-arrow-height;\n\n > .arrow {\n left: subtract(-$popover-arrow-height, $popover-border-width);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners\n\n &::before {\n left: 0;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-outer-color;\n }\n\n &::after {\n left: $popover-border-width;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-bottom {\n margin-top: $popover-arrow-height;\n\n > .arrow {\n top: subtract(-$popover-arrow-height, $popover-border-width);\n\n &::before {\n top: 0;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-outer-color;\n }\n\n &::after {\n top: $popover-border-width;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-color;\n }\n }\n\n // This will remove the popover-header's border just below the arrow\n .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: $popover-arrow-width;\n margin-left: -$popover-arrow-width / 2;\n content: \"\";\n border-bottom: $popover-border-width solid $popover-header-bg;\n }\n}\n\n.bs-popover-left {\n margin-right: $popover-arrow-height;\n\n > .arrow {\n right: subtract(-$popover-arrow-height, $popover-border-width);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners\n\n &::before {\n right: 0;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-outer-color;\n }\n\n &::after {\n right: $popover-border-width;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-popover-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-popover-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-popover-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-popover-left;\n }\n}\n\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n padding: $popover-header-padding-y $popover-header-padding-x;\n margin-bottom: 0; // Reset the default from Reboot\n @include font-size($font-size-base);\n color: $popover-header-color;\n background-color: $popover-header-bg;\n border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);\n @include border-top-radius($popover-inner-border-radius);\n\n &:empty {\n display: none;\n }\n}\n\n.popover-body {\n padding: $popover-body-padding-y $popover-body-padding-x;\n color: $popover-body-color;\n}\n","// Notes on the classes:\n//\n// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)\n// even when their scroll action started on a carousel, but for compatibility (with Firefox)\n// we're preventing all actions instead\n// 2. The .carousel-item-left and .carousel-item-right is used to indicate where\n// the active slide is heading.\n// 3. .active.carousel-item is the current slide.\n// 4. .active.carousel-item-left and .active.carousel-item-right is the current\n// slide in its in-transition state. Only one of these occurs at a time.\n// 5. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right\n// is the upcoming slide in transition.\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n @include clearfix();\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n @include transition($carousel-transition);\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n\n//\n// Alternate transitions\n//\n\n.carousel-fade {\n .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n }\n\n .carousel-item.active,\n .carousel-item-next.carousel-item-left,\n .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n }\n\n .active.carousel-item-left,\n .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n @include transition(opacity 0s $carousel-transition-duration);\n }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n // Use flex for alignment (1-3)\n display: flex; // 1. allow flex styles\n align-items: center; // 2. vertically center contents\n justify-content: center; // 3. horizontally center contents\n width: $carousel-control-width;\n color: $carousel-control-color;\n text-align: center;\n opacity: $carousel-control-opacity;\n @include transition($carousel-control-transition);\n\n // Hover/focus state\n @include hover-focus() {\n color: $carousel-control-color;\n text-decoration: none;\n outline: 0;\n opacity: $carousel-control-hover-opacity;\n }\n}\n.carousel-control-prev {\n left: 0;\n @if $enable-gradients {\n background-image: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));\n }\n}\n.carousel-control-next {\n right: 0;\n @if $enable-gradients {\n background-image: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));\n }\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: $carousel-control-icon-width;\n height: $carousel-control-icon-width;\n background: no-repeat 50% / 100% 100%;\n}\n.carousel-control-prev-icon {\n background-image: escape-svg($carousel-control-prev-icon-bg);\n}\n.carousel-control-next-icon {\n background-image: escape-svg($carousel-control-next-icon-bg);\n}\n\n\n// Optional indicator pips\n//\n// Add an ordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0; // override <ol> default\n // Use the .carousel-control's width as margin so we don't overlay those\n margin-right: $carousel-control-width;\n margin-left: $carousel-control-width;\n list-style: none;\n\n li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: $carousel-indicator-width;\n height: $carousel-indicator-height;\n margin-right: $carousel-indicator-spacer;\n margin-left: $carousel-indicator-spacer;\n text-indent: -999px;\n cursor: pointer;\n background-color: $carousel-indicator-active-bg;\n background-clip: padding-box;\n // Use transparent borders to increase the hit area by 10px on top and bottom.\n border-top: $carousel-indicator-hit-area-height solid transparent;\n border-bottom: $carousel-indicator-hit-area-height solid transparent;\n opacity: .5;\n @include transition($carousel-indicator-transition);\n }\n\n .active {\n opacity: 1;\n }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n position: absolute;\n right: (100% - $carousel-caption-width) / 2;\n bottom: 20px;\n left: (100% - $carousel-caption-width) / 2;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: $carousel-caption-color;\n text-align: center;\n}\n","@mixin clearfix() {\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n}\n","//\n// Rotating border\n//\n\n@keyframes spinner-border {\n to { transform: rotate(360deg); }\n}\n\n.spinner-border {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n border: $spinner-border-width solid currentColor;\n border-right-color: transparent;\n // stylelint-disable-next-line property-blacklist\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n border-width: $spinner-border-width-sm;\n}\n\n//\n// Growing circle\n//\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n background-color: currentColor;\n // stylelint-disable-next-line property-blacklist\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n}\n","// stylelint-disable declaration-no-important\n\n.align-baseline { vertical-align: baseline !important; } // Browser default\n.align-top { vertical-align: top !important; }\n.align-middle { vertical-align: middle !important; }\n.align-bottom { vertical-align: bottom !important; }\n.align-text-bottom { vertical-align: text-bottom !important; }\n.align-text-top { vertical-align: text-top !important; }\n","// stylelint-disable declaration-no-important\n\n// Contextual backgrounds\n\n@mixin bg-variant($parent, $color, $ignore-warning: false) {\n #{$parent} {\n background-color: $color !important;\n }\n a#{$parent},\n button#{$parent} {\n @include hover-focus() {\n background-color: darken($color, 10%) !important;\n }\n }\n @include deprecate(\"The `bg-variant` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n\n@mixin bg-gradient-variant($parent, $color, $ignore-warning: false) {\n #{$parent} {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\n }\n @include deprecate(\"The `bg-gradient-variant` mixin\", \"v4.5.0\", \"v5\", $ignore-warning);\n}\n","// stylelint-disable declaration-no-important\n\n@each $color, $value in $theme-colors {\n @include bg-variant(\".bg-#{$color}\", $value, true);\n}\n\n@if $enable-gradients {\n @each $color, $value in $theme-colors {\n @include bg-gradient-variant(\".bg-gradient-#{$color}\", $value, true);\n }\n}\n\n.bg-white {\n background-color: $white !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n","// stylelint-disable property-blacklist, declaration-no-important\n\n//\n// Border\n//\n\n.border { border: $border-width solid $border-color !important; }\n.border-top { border-top: $border-width solid $border-color !important; }\n.border-right { border-right: $border-width solid $border-color !important; }\n.border-bottom { border-bottom: $border-width solid $border-color !important; }\n.border-left { border-left: $border-width solid $border-color !important; }\n\n.border-0 { border: 0 !important; }\n.border-top-0 { border-top: 0 !important; }\n.border-right-0 { border-right: 0 !important; }\n.border-bottom-0 { border-bottom: 0 !important; }\n.border-left-0 { border-left: 0 !important; }\n\n@each $color, $value in $theme-colors {\n .border-#{$color} {\n border-color: $value !important;\n }\n}\n\n.border-white {\n border-color: $white !important;\n}\n\n//\n// Border-radius\n//\n\n.rounded-sm {\n border-radius: $border-radius-sm !important;\n}\n\n.rounded {\n border-radius: $border-radius !important;\n}\n\n.rounded-top {\n border-top-left-radius: $border-radius !important;\n border-top-right-radius: $border-radius !important;\n}\n\n.rounded-right {\n border-top-right-radius: $border-radius !important;\n border-bottom-right-radius: $border-radius !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-left {\n border-top-left-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-lg {\n border-radius: $border-radius-lg !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: $rounded-pill !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n\n &::before {\n display: block;\n content: \"\";\n }\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n}\n\n@each $embed-responsive-aspect-ratio in $embed-responsive-aspect-ratios {\n $embed-responsive-aspect-ratio-x: nth($embed-responsive-aspect-ratio, 1);\n $embed-responsive-aspect-ratio-y: nth($embed-responsive-aspect-ratio, 2);\n\n .embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} {\n &::before {\n padding-top: percentage($embed-responsive-aspect-ratio-y / $embed-responsive-aspect-ratio-x);\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .float#{$infix}-left { float: left !important; }\n .float#{$infix}-right { float: right !important; }\n .float#{$infix}-none { float: none !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $value in $user-selects {\n .user-select-#{$value} { user-select: $value !important; }\n}\n","// stylelint-disable declaration-no-important\n\n@each $value in $overflows {\n .overflow-#{$value} { overflow: $value !important; }\n}\n","// stylelint-disable declaration-no-important\n\n// Common values\n@each $position in $positions {\n .position-#{$position} { position: $position !important; }\n}\n\n// Shorthand\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.sticky-top {\n @supports (position: sticky) {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n}\n","//\n// Screenreaders\n//\n\n.sr-only {\n @include sr-only();\n}\n\n.sr-only-focusable {\n @include sr-only-focusable();\n}\n","// Only display content to screen readers\n//\n// See: https://a11yproject.com/posts/how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only() {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px; // Fix for https://github.com/twbs/bootstrap/issues/25686\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable() {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n }\n}\n","// stylelint-disable declaration-no-important\n\n.shadow-sm { box-shadow: $box-shadow-sm !important; }\n.shadow { box-shadow: $box-shadow !important; }\n.shadow-lg { box-shadow: $box-shadow-lg !important; }\n.shadow-none { box-shadow: none !important; }\n","// stylelint-disable declaration-no-important\n\n// Width and height\n\n@each $prop, $abbrev in (width: w, height: h) {\n @each $size, $length in $sizes {\n .#{$abbrev}-#{$size} { #{$prop}: $length !important; }\n }\n}\n\n.mw-100 { max-width: 100% !important; }\n.mh-100 { max-height: 100% !important; }\n\n// Viewport additional helpers\n\n.min-vw-100 { min-width: 100vw !important; }\n.min-vh-100 { min-height: 100vh !important; }\n\n.vw-100 { width: 100vw !important; }\n.vh-100 { height: 100vh !important; }\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n","//\n// Stretched link\n//\n\n.stretched-link {\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n // Just in case `pointer-events: none` is set on a parent\n pointer-events: auto;\n content: \"\";\n // IE10 bugfix, see https://stackoverflow.com/questions/16947967/ie10-hover-pseudo-class-doesnt-work-without-background-color\n background-color: rgba(0, 0, 0, 0);\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Text\n//\n\n.text-monospace { font-family: $font-family-monospace !important; }\n\n// Alignment\n\n.text-justify { text-align: justify !important; }\n.text-wrap { white-space: normal !important; }\n.text-nowrap { white-space: nowrap !important; }\n.text-truncate { @include text-truncate(); }\n\n// Responsive alignment\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .text#{$infix}-left { text-align: left !important; }\n .text#{$infix}-right { text-align: right !important; }\n .text#{$infix}-center { text-align: center !important; }\n }\n}\n\n// Transformation\n\n.text-lowercase { text-transform: lowercase !important; }\n.text-uppercase { text-transform: uppercase !important; }\n.text-capitalize { text-transform: capitalize !important; }\n\n// Weight and italics\n\n.font-weight-light { font-weight: $font-weight-light !important; }\n.font-weight-lighter { font-weight: $font-weight-lighter !important; }\n.font-weight-normal { font-weight: $font-weight-normal !important; }\n.font-weight-bold { font-weight: $font-weight-bold !important; }\n.font-weight-bolder { font-weight: $font-weight-bolder !important; }\n.font-italic { font-style: italic !important; }\n\n// Contextual colors\n\n.text-white { color: $white !important; }\n\n@each $color, $value in $theme-colors {\n @include text-emphasis-variant(\".text-#{$color}\", $value, true);\n}\n\n.text-body { color: $body-color !important; }\n.text-muted { color: $text-muted !important; }\n\n.text-black-50 { color: rgba($black, .5) !important; }\n.text-white-50 { color: rgba($white, .5) !important; }\n\n// Misc\n\n.text-hide {\n @include text-hide($ignore-warning: true);\n}\n\n.text-decoration-none { text-decoration: none !important; }\n\n.text-break {\n word-break: break-word !important; // IE & < Edge 18\n overflow-wrap: break-word !important;\n}\n\n// Reset\n\n.text-reset { color: inherit !important; }\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","// stylelint-disable declaration-no-important\n\n// Typography\n\n@mixin text-emphasis-variant($parent, $color, $ignore-warning: false) {\n #{$parent} {\n color: $color !important;\n }\n @if $emphasized-link-hover-darken-percentage != 0 {\n a#{$parent} {\n @include hover-focus() {\n color: darken($color, $emphasized-link-hover-darken-percentage) !important;\n }\n }\n }\n @include deprecate(\"`text-emphasis-variant()`\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n","// CSS image replacement\n@mixin text-hide($ignore-warning: false) {\n // stylelint-disable-next-line font-family-no-missing-generic-family-keyword\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n\n @include deprecate(\"`text-hide()`\", \"v4.1.0\", \"v5\", $ignore-warning);\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Visibility utilities\n//\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n// Source: https://github.com/h5bp/main.css/blob/master/src/_print.css\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request:\n// https://www.phpied.com/delay-loading-your-print-css/\n// ==========================================================================\n\n@if $enable-print-styles {\n @media print {\n *,\n *::before,\n *::after {\n // Bootstrap specific; comment out `color` and `background`\n //color: $black !important; // Black prints faster\n text-shadow: none !important;\n //background: transparent !important;\n box-shadow: none !important;\n }\n\n a {\n &:not(.btn) {\n text-decoration: underline;\n }\n }\n\n // Bootstrap specific; comment the following selector out\n //a[href]::after {\n // content: \" (\" attr(href) \")\";\n //}\n\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n\n // Bootstrap specific; comment the following selector out\n //\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n //\n\n //a[href^=\"#\"]::after,\n //a[href^=\"javascript:\"]::after {\n // content: \"\";\n //}\n\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px\n page-break-inside: avoid;\n }\n\n //\n // Printing Tables:\n // https://web.archive.org/web/20180815150934/http://css-discuss.incutio.com/wiki/Printing_Tables\n //\n\n thead {\n display: table-header-group;\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Specify a size and min-width to make printing closer across browsers.\n // We don't set margin here because it breaks `size` in Chrome. We also\n // don't use `!important` on `size` as it breaks in Chrome.\n @page {\n size: $print-page-size;\n }\n body {\n min-width: $print-body-min-width !important;\n }\n .container {\n min-width: $print-body-min-width !important;\n }\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .badge {\n border: $border-width solid $black;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: $white !important;\n }\n }\n\n .table-bordered {\n th,\n td {\n border: 1px solid $gray-300 !important;\n }\n }\n\n .table-dark {\n color: inherit;\n\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $table-border-color;\n }\n }\n\n .table .thead-dark th {\n color: inherit;\n border-color: $table-border-color;\n }\n\n // Bootstrap specific changes end\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_interactions.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n","// Do not forget to update getting-started/theming.md!\n:root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\n // making it impossible to interact with the content\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `<td>` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Set the cursor for non-`<button>` buttons\n//\n// Details at https://github.com/twbs/bootstrap/pull/30562\n[role=\"button\"] {\n cursor: pointer;\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::-webkit-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\ninput[type=\"date\"].form-control,\ninput[type=\"time\"].form-control,\ninput[type=\"datetime-local\"].form-control,\ninput[type=\"month\"].form-control {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-align: center;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: -ms-inline-flexbox;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: stretch;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: -ms-flexbox;\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n -webkit-print-color-adjust: exact;\n color-adjust: exact;\n}\n\n.custom-control-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n -webkit-transform: translateX(0.75rem);\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -webkit-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n -webkit-transition: none;\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -moz-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n -moz-transition: none;\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n -ms-transition: none;\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n -ms-flex-preferred-size: 100%;\n flex-basis: 100%;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n}\n\n.card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n border-top: 0;\n}\n\n.card-body {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n }\n .card-group > .card {\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n -webkit-column-count: 3;\n -moz-column-count: 3;\n column-count: 3;\n -webkit-column-gap: 1.25rem;\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion {\n overflow-anchor: none;\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item {\n display: -ms-flexbox;\n display: flex;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: -ms-flexbox;\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: -ms-flexbox;\n display: flex;\n height: 1rem;\n overflow: hidden;\n line-height: 0;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n -webkit-animation: progress-bar-stripes 1s linear infinite;\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n -webkit-animation: none;\n animation: none;\n }\n}\n\n.media {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n.media-body {\n -ms-flex: 1;\n flex: 1;\n}\n\n.list-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: 0.25rem;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n}\n\n.list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.list-group-horizontal > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-sm > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-md > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-lg > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-xl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n.list-group-flush {\n border-radius: 0;\n}\n\n.list-group-flush > .list-group-item {\n border-width: 0 0 1px;\n}\n\n.list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n -ms-flex-preferred-size: 350px;\n flex-basis: 350px;\n max-width: 350px;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: -webkit-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n -webkit-transform: translate(0, -50px);\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n -webkit-transform: none;\n transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n -webkit-transform: scale(1.02);\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: -ms-flexbox;\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n height: -webkit-min-content;\n height: -moz-min-content;\n height: min-content;\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: end;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n height: -webkit-min-content;\n height: -moz-min-content;\n height: min-content;\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n transition: -webkit-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n -webkit-transform: none;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@-webkit-keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n -webkit-animation: spinner-border .75s linear infinite;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@-webkit-keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n -webkit-animation: spinner-grow .75s linear infinite;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.user-select-all {\n -webkit-user-select: all !important;\n -moz-user-select: all !important;\n -ms-user-select: all !important;\n user-select: all !important;\n}\n\n.user-select-auto {\n -webkit-user-select: auto !important;\n -moz-user-select: auto !important;\n -ms-user-select: auto !important;\n user-select: auto !important;\n}\n\n.user-select-none {\n -webkit-user-select: none !important;\n -moz-user-select: none !important;\n -ms-user-select: none !important;\n user-select: none !important;\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: -webkit-sticky !important;\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n .sticky-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n word-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","/*!\n * Bootstrap v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\ninput[type=\"date\"].form-control,\ninput[type=\"time\"].form-control,\ninput[type=\"datetime-local\"].form-control,\ninput[type=\"month\"].form-control {\n appearance: none;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n color-adjust: exact;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n}\n\n.card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n border-top: 0;\n}\n\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion {\n overflow-anchor: none;\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item {\n display: flex;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n line-height: 0;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: 0.25rem;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n}\n\n.list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n.list-group-flush {\n border-radius: 0;\n}\n\n.list-group-flush > .list-group-item {\n border-width: 0 0 1px;\n}\n\n.list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n flex-basis: 350px;\n max-width: 350px;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n height: min-content;\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n height: min-content;\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.user-select-all {\n user-select: all !important;\n}\n\n.user-select-auto {\n user-select: auto !important;\n}\n\n.user-select-none {\n user-select: none !important;\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n word-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n &:hover { @content; }\n}\n\n@mixin hover-focus() {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus() {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active() {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { @include font-size($h1-font-size); }\nh2, .h2 { @include font-size($h2-font-size); }\nh3, .h3 { @include font-size($h3-font-size); }\nh4, .h4 { @include font-size($h4-font-size); }\nh5, .h5 { @include font-size($h5-font-size); }\nh6, .h6 { @include font-size($h6-font-size); }\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n @include font-size($display1-size);\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n @include font-size($display2-size);\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n @include font-size($display3-size);\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n @include font-size($display4-size);\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n @include font-size($small-font-size);\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled();\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled();\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size(90%);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n @include font-size($blockquote-font-size);\n}\n\n.blockquote-footer {\n display: block;\n @include font-size($blockquote-small-font-size);\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled() {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid();\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid();\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: $spacer / 2;\n line-height: 1;\n}\n\n.figure-caption {\n @include font-size($figure-caption-font-size);\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid() {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n @include deprecate(\"`img-retina()`\", \"v4.3.0\", \"v5\");\n}\n","// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n $return: ();\n @each $value in $radius {\n @if type-of($value) == number {\n $return: append($return, max($value, 0));\n } @else {\n $return: append($return, $value);\n }\n }\n @return $return;\n}\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: valid-radius($radius);\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-right-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-left-radius($radius) {\n @if $enable-rounded {\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n","// Inline code\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n @include font-size(100%);\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n @include deprecate(\"The `make-container-max-widths` mixin\", \"v4.5.2\", \"v5\");\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @if $columns > 0 {\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n }\n\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n @if $columns > 0 {\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n margin-bottom: $spacer;\n color: $table-color;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: 2 * $table-border-width;\n }\n }\n}\n\n.table-borderless {\n th,\n td,\n thead th,\n tbody + tbody {\n border: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover() {\n color: $table-hover-color;\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover() {\n color: $table-dark-hover-color;\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n\n @if $border != null {\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $border;\n }\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover() {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n height: $input-height;\n padding: $input-padding-y $input-padding-x;\n font-family: $input-font-family;\n @include font-size($input-font-size);\n font-weight: $input-font-weight;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n @include border-radius($input-border-radius, 0);\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on `<select>`s in IE10+.\n &::-ms-expand {\n background-color: transparent;\n border: 0;\n }\n\n // Remove select outline from select box in FF\n &:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 $input-color;\n }\n\n // Customize the `:focus` state to imitate native WebKit styles.\n @include form-control-focus($ignore-warning: true);\n\n // Placeholder\n &::placeholder {\n color: $input-placeholder-color;\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n opacity: 1;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &:disabled,\n &[readonly] {\n background-color: $input-disabled-bg;\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n opacity: 1;\n }\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n &.form-control {\n appearance: none; // Fix appearance for date inputs in Safari\n }\n}\n\nselect.form-control {\n &:focus::-ms-value {\n // Suppress the nested default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: add($input-padding-y, $input-border-width);\n padding-bottom: add($input-padding-y, $input-border-width);\n margin-bottom: 0; // Override the `<label>/<legend>` default\n @include font-size(inherit); // Override the `<legend>` default\n line-height: $input-line-height;\n}\n\n.col-form-label-lg {\n padding-top: add($input-padding-y-lg, $input-border-width);\n padding-bottom: add($input-padding-y-lg, $input-border-width);\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n}\n\n.col-form-label-sm {\n padding-top: add($input-padding-y-sm, $input-border-width);\n padding-bottom: add($input-padding-y-sm, $input-border-width);\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n}\n\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: $input-padding-y 0;\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n @include font-size($input-font-size);\n line-height: $input-line-height;\n color: $input-plaintext-color;\n background-color: transparent;\n border: solid transparent;\n border-width: $input-border-width 0;\n\n &.form-control-sm,\n &.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// Repeated in `_input_group.scss` to avoid Sass extend issues.\n\n.form-control-sm {\n height: $input-height-sm;\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\n.form-control-lg {\n height: $input-height-lg;\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\n// stylelint-disable-next-line no-duplicate-selectors\nselect.form-control {\n &[size],\n &[multiple] {\n height: auto;\n }\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: $form-group-margin-bottom;\n}\n\n.form-text {\n display: block;\n margin-top: $form-text-margin-top;\n}\n\n\n// Form grid\n//\n// Special replacement for our grid system's `.row` for tighter form layouts.\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$form-grid-gutter-width / 2;\n margin-left: -$form-grid-gutter-width / 2;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: $form-grid-gutter-width / 2;\n padding-left: $form-grid-gutter-width / 2;\n }\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.form-check {\n position: relative;\n display: block;\n padding-left: $form-check-input-gutter;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: $form-check-input-margin-y;\n margin-left: -$form-check-input-gutter;\n\n // Use [disabled] and :disabled for workaround https://github.com/twbs/bootstrap/issues/28247\n &[disabled] ~ .form-check-label,\n &:disabled ~ .form-check-label {\n color: $text-muted;\n }\n}\n\n.form-check-label {\n margin-bottom: 0; // Override default `<label>` bottom margin\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0; // Override base .form-check\n margin-right: $form-check-inline-margin-x;\n\n // Undo .form-check-input defaults and add some `margin-right`.\n .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: $form-check-inline-input-margin-x;\n margin-left: 0;\n }\n}\n\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server side validation.\n\n@each $state, $data in $form-validation-states {\n @include form-validation-state($state, map-get($data, color), map-get($data, icon));\n}\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)\n\n // Because we use flex, the initial sizing of checkboxes is collapsed and\n // doesn't occupy the full-width (which is what we want for xs grid tier),\n // so we force that here.\n .form-check {\n width: 100%;\n }\n\n // Kick in the inline\n @include media-breakpoint-up(sm) {\n label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n\n // Inline-block all the things for \"inline\"\n .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n\n // Allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n\n // Make static controls behave like regular ones\n .form-control-plaintext {\n display: inline-block;\n }\n\n .input-group,\n .custom-select {\n width: auto;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match.\n .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: $form-check-input-margin-x;\n margin-left: 0;\n }\n\n .custom-control {\n align-items: center;\n justify-content: center;\n }\n .custom-control-label {\n margin-bottom: 0;\n }\n }\n}\n","// stylelint-disable property-disallowed-list\n@mixin transition($transition...) {\n @if length($transition) == 0 {\n $transition: $transition-base;\n }\n\n @if length($transition) > 1 {\n @each $value in $transition {\n @if $value == null or $value == none {\n @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n }\n }\n }\n\n @if $enable-transitions {\n @if nth($transition, 1) != null {\n transition: $transition;\n }\n\n @if $enable-prefers-reduced-motion-media-query and nth($transition, 1) != null and nth($transition, 1) != none {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n }\n}\n","// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus($ignore-warning: false) {\n &:focus {\n color: $input-focus-color;\n background-color: $input-focus-bg;\n border-color: $input-focus-border-color;\n outline: 0;\n @if $enable-shadows {\n @include box-shadow($input-box-shadow, $input-focus-box-shadow);\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: $input-focus-box-shadow;\n }\n }\n @include deprecate(\"The `form-control-focus()` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n\n// This mixin uses an `if()` technique to be compatible with Dart Sass\n// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details\n@mixin form-validation-state-selector($state) {\n @if ($state == \"valid\" or $state == \"invalid\") {\n .was-validated #{if(&, \"&\", \"\")}:#{$state},\n #{if(&, \"&\", \"\")}.is-#{$state} {\n @content;\n }\n } @else {\n #{if(&, \"&\", \"\")}.is-#{$state} {\n @content;\n }\n }\n}\n\n@mixin form-validation-state($state, $color, $icon) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n margin-top: $form-feedback-margin-top;\n @include font-size($form-feedback-font-size);\n color: $color;\n }\n\n .#{$state}-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%; // Contain to parent when possible\n padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\n margin-top: .1rem;\n @include font-size($form-feedback-tooltip-font-size);\n line-height: $form-feedback-tooltip-line-height;\n color: color-yiq($color);\n background-color: rgba($color, $form-feedback-tooltip-opacity);\n @include border-radius($form-feedback-tooltip-border-radius);\n }\n\n @include form-validation-state-selector($state) {\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n\n .form-control {\n @include form-validation-state-selector($state) {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-image: escape-svg($icon);\n background-repeat: no-repeat;\n background-position: right $input-height-inner-quarter center;\n background-size: $input-height-inner-half $input-height-inner-half;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n\n // stylelint-disable-next-line selector-no-qualifying-type\n textarea.form-control {\n @include form-validation-state-selector($state) {\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\n }\n }\n }\n\n .custom-select {\n @include form-validation-state-selector($state) {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $custom-select-feedback-icon-padding-right;\n background: $custom-select-background, escape-svg($icon) $custom-select-bg no-repeat $custom-select-feedback-icon-position / $custom-select-feedback-icon-size;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n\n .form-check-input {\n @include form-validation-state-selector($state) {\n ~ .form-check-label {\n color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .custom-control-input {\n @include form-validation-state-selector($state) {\n ~ .custom-control-label {\n color: $color;\n\n &::before {\n border-color: $color;\n }\n }\n\n &:checked {\n ~ .custom-control-label::before {\n border-color: lighten($color, 10%);\n @include gradient-bg(lighten($color, 10%));\n }\n }\n\n &:focus {\n ~ .custom-control-label::before {\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n &:not(:checked) ~ .custom-control-label::before {\n border-color: $color;\n }\n }\n }\n }\n\n // custom file\n .custom-file-input {\n @include form-validation-state-selector($state) {\n ~ .custom-file-label {\n border-color: $color;\n }\n\n &:focus {\n ~ .custom-file-label {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n}\n","// Gradients\n\n@mixin gradient-bg($color) {\n @if $enable-gradients {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\n } @else {\n background-color: $color;\n }\n}\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n background-repeat: repeat-x;\n}\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.btn {\n display: inline-block;\n font-family: $btn-font-family;\n font-weight: $btn-font-weight;\n color: $body-color;\n text-align: center;\n text-decoration: if($link-decoration == none, null, none);\n white-space: $btn-white-space;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: $btn-border-width solid transparent;\n @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);\n @include transition($btn-transition);\n\n @include hover() {\n color: $body-color;\n text-decoration: none;\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: $btn-focus-box-shadow;\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n opacity: $btn-disabled-opacity;\n @include box-shadow(none);\n }\n\n &:not(:disabled):not(.disabled) {\n cursor: if($enable-pointer-cursor-for-buttons, pointer, null);\n\n &:active,\n &.active {\n @include box-shadow($btn-active-box-shadow);\n\n &:focus {\n @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n }\n }\n }\n}\n\n// Future-proof disabling of clicks on `<a>` elements\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n .btn-#{$color} {\n @include button-variant($value, $value);\n }\n}\n\n@each $color, $value in $theme-colors {\n .btn-outline-#{$color} {\n @include button-outline-variant($value);\n }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n font-weight: $font-weight-normal;\n color: $link-color;\n text-decoration: $link-decoration;\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n\n &:focus,\n &.focus {\n text-decoration: $link-hover-decoration;\n }\n\n &:disabled,\n &.disabled {\n color: $btn-link-disabled-color;\n pointer-events: none;\n }\n\n // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\n}\n\n\n//\n// Block button\n//\n\n.btn-block {\n display: block;\n width: 100%;\n\n // Vertically space out multiple block buttons\n + .btn-block {\n margin-top: $btn-block-spacing-y;\n }\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\n color: color-yiq($background);\n @include gradient-bg($background);\n border-color: $border;\n @include box-shadow($btn-box-shadow);\n\n @include hover() {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n }\n\n &:focus,\n &.focus {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n @if $enable-shadows {\n @include box-shadow($btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n color: color-yiq($background);\n background-color: $background;\n border-color: $border;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n @if $enable-gradients {\n background-image: none; // Remove the gradient for the pressed/active state\n }\n border-color: $active-border;\n\n &:focus {\n @if $enable-shadows and $btn-active-box-shadow != none {\n @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n }\n}\n\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\n color: $color;\n border-color: $color;\n\n @include hover() {\n color: $color-hover;\n background-color: $active-background;\n border-color: $active-border;\n }\n\n &:focus,\n &.focus {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n\n &.disabled,\n &:disabled {\n color: $color;\n background-color: transparent;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n border-color: $active-border;\n\n &:focus {\n @if $enable-shadows and $btn-active-box-shadow != none {\n @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5));\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n }\n }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n line-height: $line-height;\n // Manually declare to provide an override to the browser default\n @include border-radius($border-radius, 0);\n}\n",".fade {\n @include transition($transition-fade);\n\n &:not(.show) {\n opacity: 0;\n }\n}\n\n.collapse {\n &:not(.show) {\n display: none;\n }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n}\n","// The dropdown wrapper (`<div>`)\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n\n // Generate the caret automatically\n @include caret();\n}\n\n// The dropdown menu\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: $zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: $dropdown-min-width;\n padding: $dropdown-padding-y $dropdown-padding-x;\n margin: $dropdown-spacer 0 0; // override default ul\n @include font-size($dropdown-font-size);\n color: $dropdown-color;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n list-style: none;\n background-color: $dropdown-bg;\n background-clip: padding-box;\n border: $dropdown-border-width solid $dropdown-border-color;\n @include border-radius($dropdown-border-radius);\n @include box-shadow($dropdown-box-shadow);\n}\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .dropdown-menu#{$infix}-left {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu#{$infix}-right {\n right: 0;\n left: auto;\n }\n }\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(up);\n }\n}\n\n.dropright {\n .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(right);\n &::after {\n vertical-align: 0;\n }\n }\n}\n\n.dropleft {\n .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(left);\n &::before {\n vertical-align: 0;\n }\n }\n}\n\n// When enabled Popper.js, reset basic dropdown position\n// stylelint-disable-next-line no-duplicate-selectors\n.dropdown-menu {\n &[x-placement^=\"top\"],\n &[x-placement^=\"right\"],\n &[x-placement^=\"bottom\"],\n &[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n }\n}\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n @include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y, true);\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n display: block;\n width: 100%; // For `<button>`s\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n clear: both;\n font-weight: $font-weight-normal;\n color: $dropdown-link-color;\n text-align: inherit; // For `<button>`s\n text-decoration: if($link-decoration == none, null, none);\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n background-color: transparent; // For `<button>`s\n border: 0; // For `<button>`s\n\n // Prevent dropdown overflow if there's no padding\n // See https://github.com/twbs/bootstrap/pull/27703\n @if $dropdown-padding-y == 0 {\n &:first-child {\n @include border-top-radius($dropdown-inner-border-radius);\n }\n\n &:last-child {\n @include border-bottom-radius($dropdown-inner-border-radius);\n }\n }\n\n @include hover-focus() {\n color: $dropdown-link-hover-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-hover-bg);\n }\n\n &.active,\n &:active {\n color: $dropdown-link-active-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-active-bg);\n }\n\n &.disabled,\n &:disabled {\n color: $dropdown-link-disabled-color;\n pointer-events: none;\n background-color: transparent;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: $dropdown-header-padding;\n margin-bottom: 0; // for use with heading elements\n @include font-size($font-size-sm);\n color: $dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Dropdown text\n.dropdown-item-text {\n display: block;\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n color: $dropdown-link-color;\n}\n","@mixin caret-down() {\n border-top: $caret-width solid;\n border-right: $caret-width solid transparent;\n border-bottom: 0;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up() {\n border-top: 0;\n border-right: $caret-width solid transparent;\n border-bottom: $caret-width solid;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-right() {\n border-top: $caret-width solid transparent;\n border-right: 0;\n border-bottom: $caret-width solid transparent;\n border-left: $caret-width solid;\n}\n\n@mixin caret-left() {\n border-top: $caret-width solid transparent;\n border-right: $caret-width solid;\n border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n @if $enable-caret {\n &::after {\n display: inline-block;\n margin-left: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @if $direction == down {\n @include caret-down();\n } @else if $direction == up {\n @include caret-up();\n } @else if $direction == right {\n @include caret-right();\n }\n }\n\n @if $direction == left {\n &::after {\n display: none;\n }\n\n &::before {\n display: inline-block;\n margin-right: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @include caret-left();\n }\n }\n\n &:empty::after {\n margin-left: 0;\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y, $ignore-warning: false) {\n height: 0;\n margin: $margin-y 0;\n overflow: hidden;\n border-top: 1px solid $color;\n @include deprecate(\"The `nav-divider()` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; // match .btn alignment given font-size hack above\n\n > .btn {\n position: relative;\n flex: 1 1 auto;\n\n // Bring the hover, focused, and \"active\" buttons to the front to overlay\n // the borders properly\n @include hover() {\n z-index: 1;\n }\n &:focus,\n &:active,\n &.active {\n z-index: 1;\n }\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n\n .input-group {\n width: auto;\n }\n}\n\n.btn-group {\n // Prevent double borders when buttons are next to each other\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-left: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-right-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-left-radius(0);\n }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n padding-right: $btn-padding-x * .75;\n padding-left: $btn-padding-x * .75;\n\n &::after,\n .dropup &::after,\n .dropright &::after {\n margin-left: 0;\n }\n\n .dropleft &::before {\n margin-right: 0;\n }\n}\n\n.btn-sm + .dropdown-toggle-split {\n padding-right: $btn-padding-x-sm * .75;\n padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n padding-right: $btn-padding-x-lg * .75;\n padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n @include box-shadow($btn-active-box-shadow);\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n @include box-shadow(none);\n }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n > .btn,\n > .btn-group {\n width: 100%;\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-top: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-bottom-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-top-radius(0);\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n.btn-group-toggle {\n > .btn,\n > .btn-group > .btn {\n margin-bottom: 0; // Override default `<label>` value\n\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap; // For form validation feedback\n align-items: stretch;\n width: 100%;\n\n > .form-control,\n > .form-control-plaintext,\n > .custom-select,\n > .custom-file {\n position: relative; // For focus state's z-index\n flex: 1 1 auto;\n width: 1%;\n min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size\n margin-bottom: 0;\n\n + .form-control,\n + .custom-select,\n + .custom-file {\n margin-left: -$input-border-width;\n }\n }\n\n // Bring the \"active\" form control to the top of surrounding elements\n > .form-control:focus,\n > .custom-select:focus,\n > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n }\n\n // Bring the custom file input above the label\n > .custom-file .custom-file-input:focus {\n z-index: 4;\n }\n\n > .form-control,\n > .custom-select {\n &:not(:last-child) { @include border-right-radius(0); }\n &:not(:first-child) { @include border-left-radius(0); }\n }\n\n // Custom file inputs have more complex markup, thus requiring different\n // border-radius overrides.\n > .custom-file {\n display: flex;\n align-items: center;\n\n &:not(:last-child) .custom-file-label,\n &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }\n &:not(:first-child) .custom-file-label { @include border-left-radius(0); }\n }\n}\n\n\n// Prepend and append\n//\n// While it requires one extra layer of HTML for each, dedicated prepend and\n// append elements allow us to 1) be less clever, 2) simplify our selectors, and\n// 3) support HTML5 form validation.\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n\n // Ensure buttons are always above inputs for more visually pleasing borders.\n // This isn't needed for `.input-group-text` since it shares the same border-color\n // as our inputs.\n .btn {\n position: relative;\n z-index: 2;\n\n &:focus {\n z-index: 3;\n }\n }\n\n .btn + .btn,\n .btn + .input-group-text,\n .input-group-text + .input-group-text,\n .input-group-text + .btn {\n margin-left: -$input-border-width;\n }\n}\n\n.input-group-prepend { margin-right: -$input-border-width; }\n.input-group-append { margin-left: -$input-border-width; }\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: $input-padding-y $input-padding-x;\n margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom\n @include font-size($input-font-size); // Match inputs\n font-weight: $font-weight-normal;\n line-height: $input-line-height;\n color: $input-group-addon-color;\n text-align: center;\n white-space: nowrap;\n background-color: $input-group-addon-bg;\n border: $input-border-width solid $input-group-addon-border-color;\n @include border-radius($input-border-radius);\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: $input-height-lg;\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: $input-height-sm;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: $custom-select-padding-x + $custom-select-indicator-padding;\n}\n\n\n// Prepend and append rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n @include border-right-radius(0);\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n @include border-left-radius(0);\n}\n","// Embedded icons from Open Iconic.\n// Released under MIT and copyright 2014 Waybury.\n// https://useiconic.com/open\n\n\n// Checkboxes and radios\n//\n// Base class takes care of all the key behavioral aspects.\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: $font-size-base * $line-height-base;\n padding-left: $custom-control-gutter + $custom-control-indicator-size;\n color-adjust: exact; // Keep themed appearance for print\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: $custom-control-spacer-x;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1; // Put the input behind the label so it doesn't overlay text\n width: $custom-control-indicator-size;\n height: ($font-size-base * $line-height-base + $custom-control-indicator-size) / 2;\n opacity: 0;\n\n &:checked ~ .custom-control-label::before {\n color: $custom-control-indicator-checked-color;\n border-color: $custom-control-indicator-checked-border-color;\n @include gradient-bg($custom-control-indicator-checked-bg);\n @include box-shadow($custom-control-indicator-checked-box-shadow);\n }\n\n &:focus ~ .custom-control-label::before {\n // the mixin is not used here to make sure there is feedback\n @if $enable-shadows {\n box-shadow: $input-box-shadow, $custom-control-indicator-focus-box-shadow;\n } @else {\n box-shadow: $custom-control-indicator-focus-box-shadow;\n }\n }\n\n &:focus:not(:checked) ~ .custom-control-label::before {\n border-color: $custom-control-indicator-focus-border-color;\n }\n\n &:not(:disabled):active ~ .custom-control-label::before {\n color: $custom-control-indicator-active-color;\n background-color: $custom-control-indicator-active-bg;\n border-color: $custom-control-indicator-active-border-color;\n @include box-shadow($custom-control-indicator-active-box-shadow);\n }\n\n // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247\n &[disabled],\n &:disabled {\n ~ .custom-control-label {\n color: $custom-control-label-disabled-color;\n\n &::before {\n background-color: $custom-control-indicator-disabled-bg;\n }\n }\n }\n}\n\n// Custom control indicators\n//\n// Build the custom controls out of pseudo-elements.\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n color: $custom-control-label-color;\n vertical-align: top;\n cursor: $custom-control-cursor;\n\n // Background-color and (when enabled) gradient\n &::before {\n position: absolute;\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n left: -($custom-control-gutter + $custom-control-indicator-size);\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n pointer-events: none;\n content: \"\";\n background-color: $custom-control-indicator-bg;\n border: $custom-control-indicator-border-color solid $custom-control-indicator-border-width;\n @include box-shadow($custom-control-indicator-box-shadow);\n }\n\n // Foreground (icon)\n &::after {\n position: absolute;\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n left: -($custom-control-gutter + $custom-control-indicator-size);\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n content: \"\";\n background: no-repeat 50% / #{$custom-control-indicator-bg-size};\n }\n}\n\n\n// Checkboxes\n//\n// Tweak just a few things for checkboxes.\n\n.custom-checkbox {\n .custom-control-label::before {\n @include border-radius($custom-checkbox-indicator-border-radius);\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-image: escape-svg($custom-checkbox-indicator-icon-checked);\n }\n }\n\n .custom-control-input:indeterminate ~ .custom-control-label {\n &::before {\n border-color: $custom-checkbox-indicator-indeterminate-border-color;\n @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);\n @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);\n }\n &::after {\n background-image: escape-svg($custom-checkbox-indicator-icon-indeterminate);\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n }\n &:indeterminate ~ .custom-control-label::before {\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n }\n }\n}\n\n// Radios\n//\n// Tweak just a few things for radios.\n\n.custom-radio {\n .custom-control-label::before {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: $custom-radio-indicator-border-radius;\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-image: escape-svg($custom-radio-indicator-icon-checked);\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n }\n }\n}\n\n\n// switches\n//\n// Tweak a few things for switches\n\n.custom-switch {\n padding-left: $custom-switch-width + $custom-control-gutter;\n\n .custom-control-label {\n &::before {\n left: -($custom-switch-width + $custom-control-gutter);\n width: $custom-switch-width;\n pointer-events: all;\n // stylelint-disable-next-line property-disallowed-list\n border-radius: $custom-switch-indicator-border-radius;\n }\n\n &::after {\n top: add(($font-size-base * $line-height-base - $custom-control-indicator-size) / 2, $custom-control-indicator-border-width * 2);\n left: add(-($custom-switch-width + $custom-control-gutter), $custom-control-indicator-border-width * 2);\n width: $custom-switch-indicator-size;\n height: $custom-switch-indicator-size;\n background-color: $custom-control-indicator-border-color;\n // stylelint-disable-next-line property-disallowed-list\n border-radius: $custom-switch-indicator-border-radius;\n @include transition(transform .15s ease-in-out, $custom-forms-transition);\n }\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-color: $custom-control-indicator-bg;\n transform: translateX($custom-switch-width - $custom-control-indicator-size);\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n }\n }\n}\n\n\n// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// https://primer.github.io/.\n//\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: $custom-select-height;\n padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;\n font-family: $custom-select-font-family;\n @include font-size($custom-select-font-size);\n font-weight: $custom-select-font-weight;\n line-height: $custom-select-line-height;\n color: $custom-select-color;\n vertical-align: middle;\n background: $custom-select-bg $custom-select-background;\n border: $custom-select-border-width solid $custom-select-border-color;\n @include border-radius($custom-select-border-radius, 0);\n @include box-shadow($custom-select-box-shadow);\n appearance: none;\n\n &:focus {\n border-color: $custom-select-focus-border-color;\n outline: 0;\n @if $enable-shadows {\n @include box-shadow($custom-select-box-shadow, $custom-select-focus-box-shadow);\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: $custom-select-focus-box-shadow;\n }\n\n &::-ms-value {\n // For visual consistency with other platforms/browsers,\n // suppress the default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n }\n\n &[multiple],\n &[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: $custom-select-padding-x;\n background-image: none;\n }\n\n &:disabled {\n color: $custom-select-disabled-color;\n background-color: $custom-select-disabled-bg;\n }\n\n // Hides the default caret in IE11\n &::-ms-expand {\n display: none;\n }\n\n // Remove outline from select box in FF\n &:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 $custom-select-color;\n }\n}\n\n.custom-select-sm {\n height: $custom-select-height-sm;\n padding-top: $custom-select-padding-y-sm;\n padding-bottom: $custom-select-padding-y-sm;\n padding-left: $custom-select-padding-x-sm;\n @include font-size($custom-select-font-size-sm);\n}\n\n.custom-select-lg {\n height: $custom-select-height-lg;\n padding-top: $custom-select-padding-y-lg;\n padding-bottom: $custom-select-padding-y-lg;\n padding-left: $custom-select-padding-x-lg;\n @include font-size($custom-select-font-size-lg);\n}\n\n\n// File\n//\n// Custom file input.\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: $custom-file-height;\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: $custom-file-height;\n margin: 0;\n opacity: 0;\n\n &:focus ~ .custom-file-label {\n border-color: $custom-file-focus-border-color;\n box-shadow: $custom-file-focus-box-shadow;\n }\n\n // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247\n &[disabled] ~ .custom-file-label,\n &:disabled ~ .custom-file-label {\n background-color: $custom-file-disabled-bg;\n }\n\n @each $lang, $value in $custom-file-text {\n &:lang(#{$lang}) ~ .custom-file-label::after {\n content: $value;\n }\n }\n\n ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n }\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: $custom-file-height;\n padding: $custom-file-padding-y $custom-file-padding-x;\n font-family: $custom-file-font-family;\n font-weight: $custom-file-font-weight;\n line-height: $custom-file-line-height;\n color: $custom-file-color;\n background-color: $custom-file-bg;\n border: $custom-file-border-width solid $custom-file-border-color;\n @include border-radius($custom-file-border-radius);\n @include box-shadow($custom-file-box-shadow);\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: $custom-file-height-inner;\n padding: $custom-file-padding-y $custom-file-padding-x;\n line-height: $custom-file-line-height;\n color: $custom-file-button-color;\n content: \"Browse\";\n @include gradient-bg($custom-file-button-bg);\n border-left: inherit;\n @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);\n }\n}\n\n// Range\n//\n// Style range inputs the same across browsers. Vendor-specific rules for pseudo\n// elements cannot be mixed. As such, there are no shared styles for focus or\n// active states on prefixed selectors.\n\n.custom-range {\n width: 100%;\n height: add($custom-range-thumb-height, $custom-range-thumb-focus-box-shadow-width * 2);\n padding: 0; // Need to reset padding\n background-color: transparent;\n appearance: none;\n\n &:focus {\n outline: none;\n\n // Pseudo-elements must be split across multiple rulesets to have an effect.\n // No box-shadow() mixin for focus accessibility.\n &::-webkit-slider-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n &::-moz-range-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n &::-ms-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n }\n\n &::-moz-focus-outer {\n border: 0;\n }\n\n &::-webkit-slider-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: ($custom-range-track-height - $custom-range-thumb-height) / 2; // Webkit specific\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-webkit-slider-runnable-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent; // Why?\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent;\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-moz-range-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-moz-range-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent; // Firefox specific?\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: 0; // Edge specific\n margin-right: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n margin-left: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-ms-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: transparent;\n border-color: transparent;\n border-width: $custom-range-thumb-height / 2;\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-fill-lower {\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &::-ms-fill-upper {\n margin-right: 15px; // arbitrary?\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &:disabled {\n &::-webkit-slider-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n\n &::-webkit-slider-runnable-track {\n cursor: default;\n }\n\n &::-moz-range-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n\n &::-moz-range-track {\n cursor: default;\n }\n\n &::-ms-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n }\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n @include transition($custom-forms-transition);\n}\n","// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s, `<ul>`s or `<ol>`s.\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: $nav-link-padding-y $nav-link-padding-x;\n text-decoration: if($link-decoration == none, null, none);\n\n @include hover-focus() {\n text-decoration: none;\n }\n\n // Disabled state lightens text\n &.disabled {\n color: $nav-link-disabled-color;\n pointer-events: none;\n cursor: default;\n }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\n\n .nav-item {\n margin-bottom: -$nav-tabs-border-width;\n }\n\n .nav-link {\n border: $nav-tabs-border-width solid transparent;\n @include border-top-radius($nav-tabs-border-radius);\n\n @include hover-focus() {\n border-color: $nav-tabs-link-hover-border-color;\n }\n\n &.disabled {\n color: $nav-link-disabled-color;\n background-color: transparent;\n border-color: transparent;\n }\n }\n\n .nav-link.active,\n .nav-item.show .nav-link {\n color: $nav-tabs-link-active-color;\n background-color: $nav-tabs-link-active-bg;\n border-color: $nav-tabs-link-active-border-color;\n }\n\n .dropdown-menu {\n // Make dropdown border overlap tab border\n margin-top: -$nav-tabs-border-width;\n // Remove the top rounded corners here since there is a hard edge above the menu\n @include border-top-radius(0);\n }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n .nav-link {\n @include border-radius($nav-pills-border-radius);\n }\n\n .nav-link.active,\n .show > .nav-link {\n color: $nav-pills-link-active-color;\n background-color: $nav-pills-link-active-bg;\n }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n > .nav-link,\n .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n}\n\n.nav-justified {\n > .nav-link,\n .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n","// Contents\n//\n// Navbar\n// Navbar brand\n// Navbar nav\n// Navbar text\n// Navbar divider\n// Responsive navbar\n// Navbar position\n// Navbar themes\n\n\n// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap; // allow us to do the line break for collapsing content\n align-items: center;\n justify-content: space-between; // space out brand from logo\n padding: $navbar-padding-y $navbar-padding-x;\n\n // Because flex properties aren't inherited, we need to redeclare these first\n // few properties so that content nested within behave properly.\n %container-flex-properties {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n }\n\n .container,\n .container-fluid {\n @extend %container-flex-properties;\n }\n\n @each $breakpoint, $container-max-width in $container-max-widths {\n > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {\n @extend %container-flex-properties;\n }\n }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n display: inline-block;\n padding-top: $navbar-brand-padding-y;\n padding-bottom: $navbar-brand-padding-y;\n margin-right: $navbar-padding-x;\n @include font-size($navbar-brand-font-size);\n line-height: inherit;\n white-space: nowrap;\n\n @include hover-focus() {\n text-decoration: none;\n }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n display: flex;\n flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-link {\n padding-right: 0;\n padding-left: 0;\n }\n\n .dropdown-menu {\n position: static;\n float: none;\n }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n display: inline-block;\n padding-top: $nav-link-padding-y;\n padding-bottom: $nav-link-padding-y;\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n // For always expanded or extra full navbars, ensure content aligns itself\n // properly vertically. Can be easily overridden with flex utilities.\n align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\n @include font-size($navbar-toggler-font-size);\n line-height: 1;\n background-color: transparent; // remove default button style\n border: $border-width solid transparent; // remove default button style\n @include border-radius($navbar-toggler-border-radius);\n\n @include hover-focus() {\n text-decoration: none;\n }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n %container-navbar-expand-#{$breakpoint} {\n padding-right: 0;\n padding-left: 0;\n }\n\n > .container,\n > .container-fluid {\n @extend %container-navbar-expand-#{$breakpoint};\n }\n\n @each $size, $container-max-width in $container-max-widths {\n > .container#{breakpoint-infix($size, $container-max-widths)} {\n @extend %container-navbar-expand-#{$breakpoint};\n }\n }\n }\n\n @include media-breakpoint-up($next) {\n flex-flow: row nowrap;\n justify-content: flex-start;\n\n .navbar-nav {\n flex-direction: row;\n\n .dropdown-menu {\n position: absolute;\n }\n\n .nav-link {\n padding-right: $navbar-nav-link-padding-x;\n padding-left: $navbar-nav-link-padding-x;\n }\n }\n\n // For nesting containers, have to redeclare for alignment purposes\n %container-nesting-#{$breakpoint} {\n flex-wrap: nowrap;\n }\n\n > .container,\n > .container-fluid {\n @extend %container-nesting-#{$breakpoint};\n }\n\n @each $size, $container-max-width in $container-max-widths {\n > .container#{breakpoint-infix($size, $container-max-widths)} {\n @extend %container-nesting-#{$breakpoint};\n }\n }\n\n .navbar-collapse {\n display: flex !important; // stylelint-disable-line declaration-no-important\n\n // Changes flex-bases to auto because of an IE10 bug\n flex-basis: auto;\n }\n\n .navbar-toggler {\n display: none;\n }\n }\n }\n }\n}\n\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n// Dark links against a light background\n.navbar-light {\n .navbar-brand {\n color: $navbar-light-brand-color;\n\n @include hover-focus() {\n color: $navbar-light-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-light-color;\n\n @include hover-focus() {\n color: $navbar-light-hover-color;\n }\n\n &.disabled {\n color: $navbar-light-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-light-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-light-color;\n border-color: $navbar-light-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: escape-svg($navbar-light-toggler-icon-bg);\n }\n\n .navbar-text {\n color: $navbar-light-color;\n a {\n color: $navbar-light-active-color;\n\n @include hover-focus() {\n color: $navbar-light-active-color;\n }\n }\n }\n}\n\n// White links against a dark background\n.navbar-dark {\n .navbar-brand {\n color: $navbar-dark-brand-color;\n\n @include hover-focus() {\n color: $navbar-dark-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-dark-color;\n\n @include hover-focus() {\n color: $navbar-dark-hover-color;\n }\n\n &.disabled {\n color: $navbar-dark-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-dark-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-dark-color;\n border-color: $navbar-dark-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: escape-svg($navbar-dark-toggler-icon-bg);\n }\n\n .navbar-text {\n color: $navbar-dark-color;\n a {\n color: $navbar-dark-active-color;\n\n @include hover-focus() {\n color: $navbar-dark-active-color;\n }\n }\n }\n}\n","//\n// Base styles\n//\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\n height: $card-height;\n word-wrap: break-word;\n background-color: $card-bg;\n background-clip: border-box;\n border: $card-border-width solid $card-border-color;\n @include border-radius($card-border-radius);\n\n > hr {\n margin-right: 0;\n margin-left: 0;\n }\n\n > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n\n &:first-child {\n border-top-width: 0;\n @include border-top-radius($card-inner-border-radius);\n }\n\n &:last-child {\n border-bottom-width: 0;\n @include border-bottom-radius($card-inner-border-radius);\n }\n }\n\n // Due to specificity of the above selector (`.card > .list-group`), we must\n // use a child selector here to prevent double borders.\n > .card-header + .list-group,\n > .list-group + .card-footer {\n border-top: 0;\n }\n}\n\n.card-body {\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n // as much space as possible, ensuring footers are aligned to the bottom.\n flex: 1 1 auto;\n // Workaround for the image size bug in IE\n // See: https://github.com/twbs/bootstrap/pull/28855\n min-height: 1px;\n padding: $card-spacer-x;\n color: $card-color;\n}\n\n.card-title {\n margin-bottom: $card-spacer-y;\n}\n\n.card-subtitle {\n margin-top: -$card-spacer-y / 2;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link {\n @include hover() {\n text-decoration: none;\n }\n\n + .card-link {\n margin-left: $card-spacer-x;\n }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n padding: $card-spacer-y $card-spacer-x;\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\n color: $card-cap-color;\n background-color: $card-cap-bg;\n border-bottom: $card-border-width solid $card-border-color;\n\n &:first-child {\n @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\n }\n}\n\n.card-footer {\n padding: $card-spacer-y $card-spacer-x;\n color: $card-cap-color;\n background-color: $card-cap-bg;\n border-top: $card-border-width solid $card-border-color;\n\n &:last-child {\n @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\n }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n margin-right: -$card-spacer-x / 2;\n margin-bottom: -$card-spacer-y;\n margin-left: -$card-spacer-x / 2;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -$card-spacer-x / 2;\n margin-left: -$card-spacer-x / 2;\n}\n\n// Card image\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: $card-img-overlay-padding;\n @include border-radius($card-inner-border-radius);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0; // For IE: https://github.com/twbs/bootstrap/issues/29396\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n}\n\n.card-img,\n.card-img-top {\n @include border-top-radius($card-inner-border-radius);\n}\n\n.card-img,\n.card-img-bottom {\n @include border-bottom-radius($card-inner-border-radius);\n}\n\n\n// Card deck\n\n.card-deck {\n .card {\n margin-bottom: $card-deck-margin;\n }\n\n @include media-breakpoint-up(sm) {\n display: flex;\n flex-flow: row wrap;\n margin-right: -$card-deck-margin;\n margin-left: -$card-deck-margin;\n\n .card {\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n margin-right: $card-deck-margin;\n margin-bottom: 0; // Override the default\n margin-left: $card-deck-margin;\n }\n }\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n margin-bottom: $card-group-margin;\n }\n\n @include media-breakpoint-up(sm) {\n display: flex;\n flex-flow: row wrap;\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n margin-bottom: 0;\n\n + .card {\n margin-left: 0;\n border-left: 0;\n }\n\n // Handle rounded corners\n @if $enable-rounded {\n &:not(:last-child) {\n @include border-right-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-disallowed-list\n border-top-right-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-disallowed-list\n border-bottom-right-radius: 0;\n }\n }\n\n &:not(:first-child) {\n @include border-left-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-disallowed-list\n border-top-left-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-disallowed-list\n border-bottom-left-radius: 0;\n }\n }\n }\n }\n }\n}\n\n\n//\n// Columns\n//\n\n.card-columns {\n .card {\n margin-bottom: $card-columns-margin;\n }\n\n @include media-breakpoint-up(sm) {\n column-count: $card-columns-count;\n column-gap: $card-columns-gap;\n orphans: 1;\n widows: 1;\n\n .card {\n display: inline-block; // Don't let them vertically span multiple columns\n width: 100%; // Don't let their width change\n }\n }\n}\n\n\n//\n// Accordion\n//\n\n.accordion {\n overflow-anchor: none;\n\n > .card {\n overflow: hidden;\n\n &:not(:last-of-type) {\n border-bottom: 0;\n @include border-bottom-radius(0);\n }\n\n &:not(:first-of-type) {\n @include border-top-radius(0);\n }\n\n > .card-header {\n @include border-radius(0);\n margin-bottom: -$card-border-width;\n }\n }\n}\n",".breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: $breadcrumb-padding-y $breadcrumb-padding-x;\n margin-bottom: $breadcrumb-margin-bottom;\n @include font-size($breadcrumb-font-size);\n list-style: none;\n background-color: $breadcrumb-bg;\n @include border-radius($breadcrumb-border-radius);\n}\n\n.breadcrumb-item {\n display: flex;\n\n // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n + .breadcrumb-item {\n padding-left: $breadcrumb-item-padding;\n\n &::before {\n display: inline-block; // Suppress underlining of the separator in modern browsers\n padding-right: $breadcrumb-item-padding;\n color: $breadcrumb-divider-color;\n content: escape-svg($breadcrumb-divider);\n }\n }\n\n // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built\n // without `<ul>`s. The `::before` pseudo-element generates an element\n // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.\n //\n // To trick IE into suppressing the underline, we give the pseudo-element an\n // underline and then immediately remove it.\n + .breadcrumb-item:hover::before {\n text-decoration: underline;\n }\n // stylelint-disable-next-line no-duplicate-selectors\n + .breadcrumb-item:hover::before {\n text-decoration: none;\n }\n\n &.active {\n color: $breadcrumb-active-color;\n }\n}\n",".pagination {\n display: flex;\n @include list-unstyled();\n @include border-radius();\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: $pagination-padding-y $pagination-padding-x;\n margin-left: -$pagination-border-width;\n line-height: $pagination-line-height;\n color: $pagination-color;\n text-decoration: if($link-decoration == none, null, none);\n background-color: $pagination-bg;\n border: $pagination-border-width solid $pagination-border-color;\n\n &:hover {\n z-index: 2;\n color: $pagination-hover-color;\n text-decoration: none;\n background-color: $pagination-hover-bg;\n border-color: $pagination-hover-border-color;\n }\n\n &:focus {\n z-index: 3;\n outline: $pagination-focus-outline;\n box-shadow: $pagination-focus-box-shadow;\n }\n}\n\n.page-item {\n &:first-child {\n .page-link {\n margin-left: 0;\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n\n &.active .page-link {\n z-index: 3;\n color: $pagination-active-color;\n background-color: $pagination-active-bg;\n border-color: $pagination-active-border-color;\n }\n\n &.disabled .page-link {\n color: $pagination-disabled-color;\n pointer-events: none;\n // Opinionated: remove the \"hand\" cursor set previously for .page-link\n cursor: auto;\n background-color: $pagination-disabled-bg;\n border-color: $pagination-disabled-border-color;\n }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);\n}\n\n.pagination-sm {\n @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);\n}\n","// Pagination\n\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n .page-link {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n line-height: $line-height;\n }\n\n .page-item {\n &:first-child {\n .page-link {\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n }\n}\n","// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n display: inline-block;\n padding: $badge-padding-y $badge-padding-x;\n @include font-size($badge-font-size);\n font-weight: $badge-font-weight;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n @include border-radius($badge-border-radius);\n @include transition($badge-transition);\n\n @at-root a#{&} {\n @include hover-focus() {\n text-decoration: none;\n }\n }\n\n // Empty badges collapse automatically\n &:empty {\n display: none;\n }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n// Pill badges\n//\n// Make them extra rounded with a modifier to replace v3's badges.\n\n.badge-pill {\n padding-right: $badge-pill-padding-x;\n padding-left: $badge-pill-padding-x;\n @include border-radius($badge-pill-border-radius);\n}\n\n// Colors\n//\n// Contextual variations (linked badges get darker on :hover).\n\n@each $color, $value in $theme-colors {\n .badge-#{$color} {\n @include badge-variant($value);\n }\n}\n","@mixin badge-variant($bg) {\n color: color-yiq($bg);\n background-color: $bg;\n\n @at-root a#{&} {\n @include hover-focus() {\n color: color-yiq($bg);\n background-color: darken($bg, 10%);\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: 0 0 0 $badge-focus-width rgba($bg, .5);\n }\n }\n}\n",".jumbotron {\n padding: $jumbotron-padding ($jumbotron-padding / 2);\n margin-bottom: $jumbotron-padding;\n color: $jumbotron-color;\n background-color: $jumbotron-bg;\n @include border-radius($border-radius-lg);\n\n @include media-breakpoint-up(sm) {\n padding: ($jumbotron-padding * 2) $jumbotron-padding;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n @include border-radius(0);\n}\n","//\n// Base styles\n//\n\n.alert {\n position: relative;\n padding: $alert-padding-y $alert-padding-x;\n margin-bottom: $alert-margin-bottom;\n border: $alert-border-width solid transparent;\n @include border-radius($alert-border-radius);\n}\n\n// Headings for larger alerts\n.alert-heading {\n // Specified to prevent conflicts of changing $headings-color\n color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n padding-right: $close-font-size + $alert-padding-x * 2;\n\n // Adjust close link position\n .close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: $alert-padding-y $alert-padding-x;\n color: inherit;\n }\n}\n\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $color, $value in $theme-colors {\n .alert-#{$color} {\n @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\n }\n}\n","@mixin alert-variant($background, $border, $color) {\n color: $color;\n @include gradient-bg($background);\n border-color: $border;\n\n hr {\n border-top-color: darken($border, 5%);\n }\n\n .alert-link {\n color: darken($color, 10%);\n }\n}\n","// Disable animation if transitions are disabled\n@if $enable-transitions {\n @keyframes progress-bar-stripes {\n from { background-position: $progress-height 0; }\n to { background-position: 0 0; }\n }\n}\n\n.progress {\n display: flex;\n height: $progress-height;\n overflow: hidden; // force rounded corners by cropping it\n line-height: 0;\n @include font-size($progress-font-size);\n background-color: $progress-bg;\n @include border-radius($progress-border-radius);\n @include box-shadow($progress-box-shadow);\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: $progress-bar-color;\n text-align: center;\n white-space: nowrap;\n background-color: $progress-bar-bg;\n @include transition($progress-bar-transition);\n}\n\n.progress-bar-striped {\n @include gradient-striped();\n background-size: $progress-height $progress-height;\n}\n\n@if $enable-transitions {\n .progress-bar-animated {\n animation: progress-bar-stripes $progress-bar-animation-timing;\n\n @if $enable-prefers-reduced-motion-media-query {\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n }\n }\n}\n",".media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n","// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n display: flex;\n flex-direction: column;\n\n // No need to set list-style: none; since .list-group-item is block level\n padding-left: 0; // reset padding because ul and ol\n margin-bottom: 0;\n @include border-radius($list-group-border-radius);\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n width: 100%; // For `<button>`s (anchors become 100% by default though)\n color: $list-group-action-color;\n text-align: inherit; // For `<button>`s (anchors inherit)\n\n // Hover state\n @include hover-focus() {\n z-index: 1; // Place hover/focus items above their siblings for proper border styling\n color: $list-group-action-hover-color;\n text-decoration: none;\n background-color: $list-group-hover-bg;\n }\n\n &:active {\n color: $list-group-action-active-color;\n background-color: $list-group-action-active-bg;\n }\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: $list-group-item-padding-y $list-group-item-padding-x;\n color: $list-group-color;\n text-decoration: if($link-decoration == none, null, none);\n background-color: $list-group-bg;\n border: $list-group-border-width solid $list-group-border-color;\n\n &:first-child {\n @include border-top-radius(inherit);\n }\n\n &:last-child {\n @include border-bottom-radius(inherit);\n }\n\n &.disabled,\n &:disabled {\n color: $list-group-disabled-color;\n pointer-events: none;\n background-color: $list-group-disabled-bg;\n }\n\n // Include both here for `<a>`s and `<button>`s\n &.active {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: $list-group-active-color;\n background-color: $list-group-active-bg;\n border-color: $list-group-active-border-color;\n }\n\n & + & {\n border-top-width: 0;\n\n &.active {\n margin-top: -$list-group-border-width;\n border-top-width: $list-group-border-width;\n }\n }\n}\n\n\n// Horizontal\n//\n// Change the layout of list group items from vertical (default) to horizontal.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .list-group-horizontal#{$infix} {\n flex-direction: row;\n\n > .list-group-item {\n &:first-child {\n @include border-bottom-left-radius($list-group-border-radius);\n @include border-top-right-radius(0);\n }\n\n &:last-child {\n @include border-top-right-radius($list-group-border-radius);\n @include border-bottom-left-radius(0);\n }\n\n &.active {\n margin-top: 0;\n }\n\n + .list-group-item {\n border-top-width: $list-group-border-width;\n border-left-width: 0;\n\n &.active {\n margin-left: -$list-group-border-width;\n border-left-width: $list-group-border-width;\n }\n }\n }\n }\n }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n @include border-radius(0);\n\n > .list-group-item {\n border-width: 0 0 $list-group-border-width;\n\n &:last-child {\n border-bottom-width: 0;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $color, $value in $theme-colors {\n @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));\n}\n","// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n .list-group-item-#{$state} {\n color: $color;\n background-color: $background;\n\n &.list-group-item-action {\n @include hover-focus() {\n color: $color;\n background-color: darken($background, 5%);\n }\n\n &.active {\n color: $white;\n background-color: $color;\n border-color: $color;\n }\n }\n }\n}\n",".close {\n float: right;\n @include font-size($close-font-size);\n font-weight: $close-font-weight;\n line-height: 1;\n color: $close-color;\n text-shadow: $close-text-shadow;\n opacity: .5;\n\n // Override <a>'s hover style\n @include hover() {\n color: $close-color;\n text-decoration: none;\n }\n\n &:not(:disabled):not(.disabled) {\n @include hover-focus() {\n opacity: .75;\n }\n }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n// stylelint-disable-next-line selector-no-qualifying-type\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n}\n\n// Future-proof disabling of clicks on `<a>` elements\n\n// stylelint-disable-next-line selector-no-qualifying-type\na.close.disabled {\n pointer-events: none;\n}\n",".toast {\n // Prevents from shrinking in IE11, when in a flex container\n // See https://github.com/twbs/bootstrap/issues/28341\n flex-basis: $toast-max-width;\n max-width: $toast-max-width;\n @include font-size($toast-font-size);\n color: $toast-color;\n background-color: $toast-background-color;\n background-clip: padding-box;\n border: $toast-border-width solid $toast-border-color;\n box-shadow: $toast-box-shadow;\n opacity: 0;\n @include border-radius($toast-border-radius);\n\n &:not(:last-child) {\n margin-bottom: $toast-padding-x;\n }\n\n &.showing {\n opacity: 1;\n }\n\n &.show {\n display: block;\n opacity: 1;\n }\n\n &.hide {\n display: none;\n }\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: $toast-padding-y $toast-padding-x;\n color: $toast-header-color;\n background-color: $toast-header-background-color;\n background-clip: padding-box;\n border-bottom: $toast-border-width solid $toast-header-border-color;\n @include border-top-radius(subtract($toast-border-radius, $toast-border-width));\n}\n\n.toast-body {\n padding: $toast-padding-x; // apply to both vertical and horizontal\n}\n","// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and stuff\n\n\n.modal-open {\n // Kill the scroll on the body\n overflow: hidden;\n\n .modal {\n overflow-x: hidden;\n overflow-y: auto;\n }\n}\n\n// Container that the modal scrolls within\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n // See also https://github.com/twbs/bootstrap/issues/17695\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: $modal-dialog-margin;\n // allow clicks to pass through for custom click handling to close modal\n pointer-events: none;\n\n // When fading in the modal, animate it to slide down\n .modal.fade & {\n @include transition($modal-transition);\n transform: $modal-fade-transform;\n }\n .modal.show & {\n transform: $modal-show-transform;\n }\n\n // When trying to close, animate focus to scale\n .modal.modal-static & {\n transform: $modal-scale-transform;\n }\n}\n\n.modal-dialog-scrollable {\n display: flex; // IE10/11\n max-height: subtract(100%, $modal-dialog-margin * 2);\n\n .modal-content {\n max-height: subtract(100vh, $modal-dialog-margin * 2); // IE10/11\n overflow: hidden;\n }\n\n .modal-header,\n .modal-footer {\n flex-shrink: 0;\n }\n\n .modal-body {\n overflow-y: auto;\n }\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: subtract(100%, $modal-dialog-margin * 2);\n\n // Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)\n &::before {\n display: block; // IE10\n height: subtract(100vh, $modal-dialog-margin * 2);\n height: min-content; // Reset height to 0 except on IE\n content: \"\";\n }\n\n // Ensure `.modal-body` shows scrollbar (IE10/11)\n &.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n\n .modal-content {\n max-height: none;\n }\n\n &::before {\n content: none;\n }\n }\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n // counteract the pointer-events: none; in the .modal-dialog\n color: $modal-content-color;\n pointer-events: auto;\n background-color: $modal-content-bg;\n background-clip: padding-box;\n border: $modal-content-border-width solid $modal-content-border-color;\n @include border-radius($modal-content-border-radius);\n @include box-shadow($modal-content-box-shadow-xs);\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal-backdrop;\n width: 100vw;\n height: 100vh;\n background-color: $modal-backdrop-bg;\n\n // Fade for backdrop\n &.fade { opacity: 0; }\n &.show { opacity: $modal-backdrop-opacity; }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n display: flex;\n align-items: flex-start; // so the close btn always stays on the upper right corner\n justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n padding: $modal-header-padding;\n border-bottom: $modal-header-border-width solid $modal-header-border-color;\n @include border-top-radius($modal-content-inner-border-radius);\n\n .close {\n padding: $modal-header-padding;\n // auto on the left force icon to the right even when there is no .modal-title\n margin: (-$modal-header-padding-y) (-$modal-header-padding-x) (-$modal-header-padding-y) auto;\n }\n}\n\n// Title text within header\n.modal-title {\n margin-bottom: 0;\n line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n // Enable `flex-grow: 1` so that the body take up as much space as possible\n // when there should be a fixed height on `.modal-dialog`.\n flex: 1 1 auto;\n padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center; // vertically center\n justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n padding: $modal-inner-padding - $modal-footer-margin-between / 2;\n border-top: $modal-footer-border-width solid $modal-footer-border-color;\n @include border-bottom-radius($modal-content-inner-border-radius);\n\n // Place margin between footer elements\n // This solution is far from ideal because of the universal selector usage,\n // but is needed to fix https://github.com/twbs/bootstrap/issues/24800\n > * {\n margin: $modal-footer-margin-between / 2;\n }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n max-width: $modal-md;\n margin: $modal-dialog-margin-y-sm-up auto;\n }\n\n .modal-dialog-scrollable {\n max-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\n\n .modal-content {\n max-height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);\n }\n }\n\n .modal-dialog-centered {\n min-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\n\n &::before {\n height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);\n height: min-content;\n }\n }\n\n .modal-content {\n @include box-shadow($modal-content-box-shadow-sm-up);\n }\n\n .modal-sm { max-width: $modal-sm; }\n}\n\n@include media-breakpoint-up(lg) {\n .modal-lg,\n .modal-xl {\n max-width: $modal-lg;\n }\n}\n\n@include media-breakpoint-up(xl) {\n .modal-xl { max-width: $modal-xl; }\n}\n","// Base class\n.tooltip {\n position: absolute;\n z-index: $zindex-tooltip;\n display: block;\n margin: $tooltip-margin;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($tooltip-font-size);\n // Allow breaking very long words so they don't overflow the tooltip's bounds\n word-wrap: break-word;\n opacity: 0;\n\n &.show { opacity: $tooltip-opacity; }\n\n .arrow {\n position: absolute;\n display: block;\n width: $tooltip-arrow-width;\n height: $tooltip-arrow-height;\n\n &::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-tooltip-top {\n padding: $tooltip-arrow-height 0;\n\n .arrow {\n bottom: 0;\n\n &::before {\n top: 0;\n border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-top-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-right {\n padding: 0 $tooltip-arrow-height;\n\n .arrow {\n left: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n right: 0;\n border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-right-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-bottom {\n padding: $tooltip-arrow-height 0;\n\n .arrow {\n top: 0;\n\n &::before {\n bottom: 0;\n border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-bottom-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-left {\n padding: 0 $tooltip-arrow-height;\n\n .arrow {\n right: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n left: 0;\n border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-left-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-tooltip-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-tooltip-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-tooltip-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-tooltip-left;\n }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: $tooltip-max-width;\n padding: $tooltip-padding-y $tooltip-padding-x;\n color: $tooltip-color;\n text-align: center;\n background-color: $tooltip-bg;\n @include border-radius($tooltip-border-radius);\n}\n","@mixin reset-text() {\n font-family: $font-family-base;\n // We deliberately do NOT reset font-size or word-wrap.\n font-style: normal;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n}\n",".popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: $zindex-popover;\n display: block;\n max-width: $popover-max-width;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($popover-font-size);\n // Allow breaking very long words so they don't overflow the popover's bounds\n word-wrap: break-word;\n background-color: $popover-bg;\n background-clip: padding-box;\n border: $popover-border-width solid $popover-border-color;\n @include border-radius($popover-border-radius);\n @include box-shadow($popover-box-shadow);\n\n .arrow {\n position: absolute;\n display: block;\n width: $popover-arrow-width;\n height: $popover-arrow-height;\n margin: 0 $popover-border-radius;\n\n &::before,\n &::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-popover-top {\n margin-bottom: $popover-arrow-height;\n\n > .arrow {\n bottom: subtract(-$popover-arrow-height, $popover-border-width);\n\n &::before {\n bottom: 0;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-outer-color;\n }\n\n &::after {\n bottom: $popover-border-width;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-right {\n margin-left: $popover-arrow-height;\n\n > .arrow {\n left: subtract(-$popover-arrow-height, $popover-border-width);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners\n\n &::before {\n left: 0;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-outer-color;\n }\n\n &::after {\n left: $popover-border-width;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-bottom {\n margin-top: $popover-arrow-height;\n\n > .arrow {\n top: subtract(-$popover-arrow-height, $popover-border-width);\n\n &::before {\n top: 0;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-outer-color;\n }\n\n &::after {\n top: $popover-border-width;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-color;\n }\n }\n\n // This will remove the popover-header's border just below the arrow\n .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: $popover-arrow-width;\n margin-left: -$popover-arrow-width / 2;\n content: \"\";\n border-bottom: $popover-border-width solid $popover-header-bg;\n }\n}\n\n.bs-popover-left {\n margin-right: $popover-arrow-height;\n\n > .arrow {\n right: subtract(-$popover-arrow-height, $popover-border-width);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners\n\n &::before {\n right: 0;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-outer-color;\n }\n\n &::after {\n right: $popover-border-width;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-popover-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-popover-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-popover-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-popover-left;\n }\n}\n\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n padding: $popover-header-padding-y $popover-header-padding-x;\n margin-bottom: 0; // Reset the default from Reboot\n @include font-size($font-size-base);\n color: $popover-header-color;\n background-color: $popover-header-bg;\n border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);\n @include border-top-radius($popover-inner-border-radius);\n\n &:empty {\n display: none;\n }\n}\n\n.popover-body {\n padding: $popover-body-padding-y $popover-body-padding-x;\n color: $popover-body-color;\n}\n","// Notes on the classes:\n//\n// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)\n// even when their scroll action started on a carousel, but for compatibility (with Firefox)\n// we're preventing all actions instead\n// 2. The .carousel-item-left and .carousel-item-right is used to indicate where\n// the active slide is heading.\n// 3. .active.carousel-item is the current slide.\n// 4. .active.carousel-item-left and .active.carousel-item-right is the current\n// slide in its in-transition state. Only one of these occurs at a time.\n// 5. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right\n// is the upcoming slide in transition.\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n @include clearfix();\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n @include transition($carousel-transition);\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n\n//\n// Alternate transitions\n//\n\n.carousel-fade {\n .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n }\n\n .carousel-item.active,\n .carousel-item-next.carousel-item-left,\n .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n }\n\n .active.carousel-item-left,\n .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n @include transition(opacity 0s $carousel-transition-duration);\n }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n // Use flex for alignment (1-3)\n display: flex; // 1. allow flex styles\n align-items: center; // 2. vertically center contents\n justify-content: center; // 3. horizontally center contents\n width: $carousel-control-width;\n color: $carousel-control-color;\n text-align: center;\n opacity: $carousel-control-opacity;\n @include transition($carousel-control-transition);\n\n // Hover/focus state\n @include hover-focus() {\n color: $carousel-control-color;\n text-decoration: none;\n outline: 0;\n opacity: $carousel-control-hover-opacity;\n }\n}\n.carousel-control-prev {\n left: 0;\n @if $enable-gradients {\n background-image: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));\n }\n}\n.carousel-control-next {\n right: 0;\n @if $enable-gradients {\n background-image: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));\n }\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: $carousel-control-icon-width;\n height: $carousel-control-icon-width;\n background: no-repeat 50% / 100% 100%;\n}\n.carousel-control-prev-icon {\n background-image: escape-svg($carousel-control-prev-icon-bg);\n}\n.carousel-control-next-icon {\n background-image: escape-svg($carousel-control-next-icon-bg);\n}\n\n\n// Optional indicator pips\n//\n// Add an ordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0; // override <ol> default\n // Use the .carousel-control's width as margin so we don't overlay those\n margin-right: $carousel-control-width;\n margin-left: $carousel-control-width;\n list-style: none;\n\n li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: $carousel-indicator-width;\n height: $carousel-indicator-height;\n margin-right: $carousel-indicator-spacer;\n margin-left: $carousel-indicator-spacer;\n text-indent: -999px;\n cursor: pointer;\n background-color: $carousel-indicator-active-bg;\n background-clip: padding-box;\n // Use transparent borders to increase the hit area by 10px on top and bottom.\n border-top: $carousel-indicator-hit-area-height solid transparent;\n border-bottom: $carousel-indicator-hit-area-height solid transparent;\n opacity: .5;\n @include transition($carousel-indicator-transition);\n }\n\n .active {\n opacity: 1;\n }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n position: absolute;\n right: (100% - $carousel-caption-width) / 2;\n bottom: 20px;\n left: (100% - $carousel-caption-width) / 2;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: $carousel-caption-color;\n text-align: center;\n}\n","@mixin clearfix() {\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n}\n","//\n// Rotating border\n//\n\n@keyframes spinner-border {\n to { transform: rotate(360deg); }\n}\n\n.spinner-border {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n border: $spinner-border-width solid currentColor;\n border-right-color: transparent;\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n border-width: $spinner-border-width-sm;\n}\n\n//\n// Growing circle\n//\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n background-color: currentColor;\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n}\n","// stylelint-disable declaration-no-important\n\n.align-baseline { vertical-align: baseline !important; } // Browser default\n.align-top { vertical-align: top !important; }\n.align-middle { vertical-align: middle !important; }\n.align-bottom { vertical-align: bottom !important; }\n.align-text-bottom { vertical-align: text-bottom !important; }\n.align-text-top { vertical-align: text-top !important; }\n","// stylelint-disable declaration-no-important\n\n// Contextual backgrounds\n\n@mixin bg-variant($parent, $color, $ignore-warning: false) {\n #{$parent} {\n background-color: $color !important;\n }\n a#{$parent},\n button#{$parent} {\n @include hover-focus() {\n background-color: darken($color, 10%) !important;\n }\n }\n @include deprecate(\"The `bg-variant` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n\n@mixin bg-gradient-variant($parent, $color, $ignore-warning: false) {\n #{$parent} {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\n }\n @include deprecate(\"The `bg-gradient-variant` mixin\", \"v4.5.0\", \"v5\", $ignore-warning);\n}\n","// stylelint-disable declaration-no-important\n\n@each $color, $value in $theme-colors {\n @include bg-variant(\".bg-#{$color}\", $value, true);\n}\n\n@if $enable-gradients {\n @each $color, $value in $theme-colors {\n @include bg-gradient-variant(\".bg-gradient-#{$color}\", $value, true);\n }\n}\n\n.bg-white {\n background-color: $white !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n","// stylelint-disable property-disallowed-list, declaration-no-important\n\n//\n// Border\n//\n\n.border { border: $border-width solid $border-color !important; }\n.border-top { border-top: $border-width solid $border-color !important; }\n.border-right { border-right: $border-width solid $border-color !important; }\n.border-bottom { border-bottom: $border-width solid $border-color !important; }\n.border-left { border-left: $border-width solid $border-color !important; }\n\n.border-0 { border: 0 !important; }\n.border-top-0 { border-top: 0 !important; }\n.border-right-0 { border-right: 0 !important; }\n.border-bottom-0 { border-bottom: 0 !important; }\n.border-left-0 { border-left: 0 !important; }\n\n@each $color, $value in $theme-colors {\n .border-#{$color} {\n border-color: $value !important;\n }\n}\n\n.border-white {\n border-color: $white !important;\n}\n\n//\n// Border-radius\n//\n\n.rounded-sm {\n border-radius: $border-radius-sm !important;\n}\n\n.rounded {\n border-radius: $border-radius !important;\n}\n\n.rounded-top {\n border-top-left-radius: $border-radius !important;\n border-top-right-radius: $border-radius !important;\n}\n\n.rounded-right {\n border-top-right-radius: $border-radius !important;\n border-bottom-right-radius: $border-radius !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-left {\n border-top-left-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-lg {\n border-radius: $border-radius-lg !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: $rounded-pill !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n\n &::before {\n display: block;\n content: \"\";\n }\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n}\n\n@each $embed-responsive-aspect-ratio in $embed-responsive-aspect-ratios {\n $embed-responsive-aspect-ratio-x: nth($embed-responsive-aspect-ratio, 1);\n $embed-responsive-aspect-ratio-y: nth($embed-responsive-aspect-ratio, 2);\n\n .embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} {\n &::before {\n padding-top: percentage($embed-responsive-aspect-ratio-y / $embed-responsive-aspect-ratio-x);\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .float#{$infix}-left { float: left !important; }\n .float#{$infix}-right { float: right !important; }\n .float#{$infix}-none { float: none !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $value in $user-selects {\n .user-select-#{$value} { user-select: $value !important; }\n}\n","// stylelint-disable declaration-no-important\n\n@each $value in $overflows {\n .overflow-#{$value} { overflow: $value !important; }\n}\n","// stylelint-disable declaration-no-important\n\n// Common values\n@each $position in $positions {\n .position-#{$position} { position: $position !important; }\n}\n\n// Shorthand\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.sticky-top {\n @supports (position: sticky) {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n}\n","//\n// Screenreaders\n//\n\n.sr-only {\n @include sr-only();\n}\n\n.sr-only-focusable {\n @include sr-only-focusable();\n}\n","// Only display content to screen readers\n//\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only() {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px; // Fix for https://github.com/twbs/bootstrap/issues/25686\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable() {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n }\n}\n","// stylelint-disable declaration-no-important\n\n.shadow-sm { box-shadow: $box-shadow-sm !important; }\n.shadow { box-shadow: $box-shadow !important; }\n.shadow-lg { box-shadow: $box-shadow-lg !important; }\n.shadow-none { box-shadow: none !important; }\n","// stylelint-disable declaration-no-important\n\n// Width and height\n\n@each $prop, $abbrev in (width: w, height: h) {\n @each $size, $length in $sizes {\n .#{$abbrev}-#{$size} { #{$prop}: $length !important; }\n }\n}\n\n.mw-100 { max-width: 100% !important; }\n.mh-100 { max-height: 100% !important; }\n\n// Viewport additional helpers\n\n.min-vw-100 { min-width: 100vw !important; }\n.min-vh-100 { min-height: 100vh !important; }\n\n.vw-100 { width: 100vw !important; }\n.vh-100 { height: 100vh !important; }\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n","//\n// Stretched link\n//\n\n.stretched-link {\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n // Just in case `pointer-events: none` is set on a parent\n pointer-events: auto;\n content: \"\";\n // IE10 bugfix, see https://stackoverflow.com/questions/16947967/ie10-hover-pseudo-class-doesnt-work-without-background-color\n background-color: rgba(0, 0, 0, 0);\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Text\n//\n\n.text-monospace { font-family: $font-family-monospace !important; }\n\n// Alignment\n\n.text-justify { text-align: justify !important; }\n.text-wrap { white-space: normal !important; }\n.text-nowrap { white-space: nowrap !important; }\n.text-truncate { @include text-truncate(); }\n\n// Responsive alignment\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .text#{$infix}-left { text-align: left !important; }\n .text#{$infix}-right { text-align: right !important; }\n .text#{$infix}-center { text-align: center !important; }\n }\n}\n\n// Transformation\n\n.text-lowercase { text-transform: lowercase !important; }\n.text-uppercase { text-transform: uppercase !important; }\n.text-capitalize { text-transform: capitalize !important; }\n\n// Weight and italics\n\n.font-weight-light { font-weight: $font-weight-light !important; }\n.font-weight-lighter { font-weight: $font-weight-lighter !important; }\n.font-weight-normal { font-weight: $font-weight-normal !important; }\n.font-weight-bold { font-weight: $font-weight-bold !important; }\n.font-weight-bolder { font-weight: $font-weight-bolder !important; }\n.font-italic { font-style: italic !important; }\n\n// Contextual colors\n\n.text-white { color: $white !important; }\n\n@each $color, $value in $theme-colors {\n @include text-emphasis-variant(\".text-#{$color}\", $value, true);\n}\n\n.text-body { color: $body-color !important; }\n.text-muted { color: $text-muted !important; }\n\n.text-black-50 { color: rgba($black, .5) !important; }\n.text-white-50 { color: rgba($white, .5) !important; }\n\n// Misc\n\n.text-hide {\n @include text-hide($ignore-warning: true);\n}\n\n.text-decoration-none { text-decoration: none !important; }\n\n.text-break {\n word-break: break-word !important; // Deprecated, but avoids issues with flex containers\n word-wrap: break-word !important; // Used instead of `overflow-wrap` for IE & Edge Legacy\n}\n\n// Reset\n\n.text-reset { color: inherit !important; }\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","// stylelint-disable declaration-no-important\n\n// Typography\n\n@mixin text-emphasis-variant($parent, $color, $ignore-warning: false) {\n #{$parent} {\n color: $color !important;\n }\n @if $emphasized-link-hover-darken-percentage != 0 {\n a#{$parent} {\n @include hover-focus() {\n color: darken($color, $emphasized-link-hover-darken-percentage) !important;\n }\n }\n }\n @include deprecate(\"`text-emphasis-variant()`\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n","// CSS image replacement\n@mixin text-hide($ignore-warning: false) {\n // stylelint-disable-next-line font-family-no-missing-generic-family-keyword\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n\n @include deprecate(\"`text-hide()`\", \"v4.1.0\", \"v5\", $ignore-warning);\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Visibility utilities\n//\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n// Source: https://github.com/h5bp/main.css/blob/master/src/_print.css\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request:\n// https://www.phpied.com/delay-loading-your-print-css/\n// ==========================================================================\n\n@if $enable-print-styles {\n @media print {\n *,\n *::before,\n *::after {\n // Bootstrap specific; comment out `color` and `background`\n //color: $black !important; // Black prints faster\n text-shadow: none !important;\n //background: transparent !important;\n box-shadow: none !important;\n }\n\n a {\n &:not(.btn) {\n text-decoration: underline;\n }\n }\n\n // Bootstrap specific; comment the following selector out\n //a[href]::after {\n // content: \" (\" attr(href) \")\";\n //}\n\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n\n // Bootstrap specific; comment the following selector out\n //\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n //\n\n //a[href^=\"#\"]::after,\n //a[href^=\"javascript:\"]::after {\n // content: \"\";\n //}\n\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px\n page-break-inside: avoid;\n }\n\n //\n // Printing Tables:\n // https://web.archive.org/web/20180815150934/http://css-discuss.incutio.com/wiki/Printing_Tables\n //\n\n thead {\n display: table-header-group;\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Specify a size and min-width to make printing closer across browsers.\n // We don't set margin here because it breaks `size` in Chrome. We also\n // don't use `!important` on `size` as it breaks in Chrome.\n @page {\n size: $print-page-size;\n }\n body {\n min-width: $print-body-min-width !important;\n }\n .container {\n min-width: $print-body-min-width !important;\n }\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .badge {\n border: $border-width solid $black;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: $white !important;\n }\n }\n\n .table-bordered {\n th,\n td {\n border: 1px solid $gray-300 !important;\n }\n }\n\n .table-dark {\n color: inherit;\n\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $table-border-color;\n }\n }\n\n .table .thead-dark th {\n color: inherit;\n border-color: $table-border-color;\n }\n\n // Bootstrap specific changes end\n }\n}\n"]} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/dist/js/bootstrap.bundle.js b/npm_assets/node_modules/bootstrap/dist/js/bootstrap.bundle.js index 483657a336..5fda309c96 100644 --- a/npm_assets/node_modules/bootstrap/dist/js/bootstrap.bundle.js +++ b/npm_assets/node_modules/bootstrap/dist/js/bootstrap.bundle.js @@ -1,5 +1,5 @@ /*! - * Bootstrap v4.5.2 (https://getbootstrap.com/) + * Bootstrap v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -9,7 +9,9 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.bootstrap = {}, global.jQuery)); }(this, (function (exports, $) { 'use strict'; - $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $; + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var $__default = /*#__PURE__*/_interopDefaultLegacy($); function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { @@ -53,7 +55,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): util.js + * Bootstrap (v4.5.3): util.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -80,7 +82,7 @@ bindType: TRANSITION_END, delegateType: TRANSITION_END, handle: function handle(event) { - if ($(event.target).is(this)) { + if ($__default['default'](event.target).is(this)) { return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params } @@ -93,7 +95,7 @@ var _this = this; var called = false; - $(this).one(Util.TRANSITION_END, function () { + $__default['default'](this).one(Util.TRANSITION_END, function () { called = true; }); setTimeout(function () { @@ -105,8 +107,8 @@ } function setTransitionEndSupport() { - $.fn.emulateTransitionEnd = transitionEndEmulator; - $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent(); + $__default['default'].fn.emulateTransitionEnd = transitionEndEmulator; + $__default['default'].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent(); } /** * -------------------------------------------------------------------------- @@ -119,7 +121,6 @@ TRANSITION_END: 'bsTransitionEnd', getUID: function getUID(prefix) { do { - // eslint-disable-next-line no-bitwise prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here } while (document.getElementById(prefix)); @@ -135,7 +136,7 @@ try { return document.querySelector(selector) ? selector : null; - } catch (err) { + } catch (_) { return null; } }, @@ -145,8 +146,8 @@ } // Get transition-duration of the element - var transitionDuration = $(element).css('transition-duration'); - var transitionDelay = $(element).css('transition-delay'); + var transitionDuration = $__default['default'](element).css('transition-duration'); + var transitionDelay = $__default['default'](element).css('transition-delay'); var floatTransitionDuration = parseFloat(transitionDuration); var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found @@ -163,9 +164,8 @@ return element.offsetHeight; }, triggerTransitionEnd: function triggerTransitionEnd(element) { - $(element).trigger(TRANSITION_END); + $__default['default'](element).trigger(TRANSITION_END); }, - // TODO: Remove in v5 supportsTransitionEnd: function supportsTransitionEnd() { return Boolean(TRANSITION_END); }, @@ -208,11 +208,11 @@ return Util.findShadowRoot(element.parentNode); }, jQueryDetection: function jQueryDetection() { - if (typeof $ === 'undefined') { + if (typeof $__default['default'] === 'undefined') { throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.'); } - var version = $.fn.jquery.split(' ')[0].split('.'); + var version = $__default['default'].fn.jquery.split(' ')[0].split('.'); var minMajor = 1; var ltMajor = 2; var minMinor = 9; @@ -234,11 +234,11 @@ */ var NAME = 'alert'; - var VERSION = '4.5.2'; + var VERSION = '4.5.3'; var DATA_KEY = 'bs.alert'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; - var JQUERY_NO_CONFLICT = $.fn[NAME]; + var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME]; var SELECTOR_DISMISS = '[data-dismiss="alert"]'; var EVENT_CLOSE = "close" + EVENT_KEY; var EVENT_CLOSED = "closed" + EVENT_KEY; @@ -278,7 +278,7 @@ }; _proto.dispose = function dispose() { - $.removeData(this._element, DATA_KEY); + $__default['default'].removeData(this._element, DATA_KEY); this._element = null; } // Private ; @@ -292,43 +292,43 @@ } if (!parent) { - parent = $(element).closest("." + CLASS_NAME_ALERT)[0]; + parent = $__default['default'](element).closest("." + CLASS_NAME_ALERT)[0]; } return parent; }; _proto._triggerCloseEvent = function _triggerCloseEvent(element) { - var closeEvent = $.Event(EVENT_CLOSE); - $(element).trigger(closeEvent); + var closeEvent = $__default['default'].Event(EVENT_CLOSE); + $__default['default'](element).trigger(closeEvent); return closeEvent; }; _proto._removeElement = function _removeElement(element) { var _this = this; - $(element).removeClass(CLASS_NAME_SHOW); + $__default['default'](element).removeClass(CLASS_NAME_SHOW); - if (!$(element).hasClass(CLASS_NAME_FADE)) { + if (!$__default['default'](element).hasClass(CLASS_NAME_FADE)) { this._destroyElement(element); return; } var transitionDuration = Util.getTransitionDurationFromElement(element); - $(element).one(Util.TRANSITION_END, function (event) { + $__default['default'](element).one(Util.TRANSITION_END, function (event) { return _this._destroyElement(element, event); }).emulateTransitionEnd(transitionDuration); }; _proto._destroyElement = function _destroyElement(element) { - $(element).detach().trigger(EVENT_CLOSED).remove(); + $__default['default'](element).detach().trigger(EVENT_CLOSED).remove(); } // Static ; Alert._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var $element = $(this); + var $element = $__default['default'](this); var data = $element.data(DATA_KEY); if (!data) { @@ -368,18 +368,18 @@ */ - $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert())); + $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert())); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ */ - $.fn[NAME] = Alert._jQueryInterface; - $.fn[NAME].Constructor = Alert; + $__default['default'].fn[NAME] = Alert._jQueryInterface; + $__default['default'].fn[NAME].Constructor = Alert; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; + $__default['default'].fn[NAME].noConflict = function () { + $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT; return Alert._jQueryInterface; }; @@ -390,11 +390,11 @@ */ var NAME$1 = 'button'; - var VERSION$1 = '4.5.2'; + var VERSION$1 = '4.5.3'; var DATA_KEY$1 = 'bs.button'; var EVENT_KEY$1 = "." + DATA_KEY$1; var DATA_API_KEY$1 = '.data-api'; - var JQUERY_NO_CONFLICT$1 = $.fn[NAME$1]; + var JQUERY_NO_CONFLICT$1 = $__default['default'].fn[NAME$1]; var CLASS_NAME_ACTIVE = 'active'; var CLASS_NAME_BUTTON = 'btn'; var CLASS_NAME_FOCUS = 'focus'; @@ -417,6 +417,7 @@ var Button = /*#__PURE__*/function () { function Button(element) { this._element = element; + this.shouldAvoidTriggerChange = false; } // Getters @@ -426,7 +427,7 @@ _proto.toggle = function toggle() { var triggerChangeEvent = true; var addAriaPressed = true; - var rootElement = $(this._element).closest(SELECTOR_DATA_TOGGLES)[0]; + var rootElement = $__default['default'](this._element).closest(SELECTOR_DATA_TOGGLES)[0]; if (rootElement) { var input = this._element.querySelector(SELECTOR_INPUT); @@ -439,7 +440,7 @@ var activeElement = rootElement.querySelector(SELECTOR_ACTIVE); if (activeElement) { - $(activeElement).removeClass(CLASS_NAME_ACTIVE); + $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE); } } } @@ -450,7 +451,9 @@ input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE); } - $(input).trigger('change'); + if (!this.shouldAvoidTriggerChange) { + $__default['default'](input).trigger('change'); + } } input.focus(); @@ -464,26 +467,29 @@ } if (triggerChangeEvent) { - $(this._element).toggleClass(CLASS_NAME_ACTIVE); + $__default['default'](this._element).toggleClass(CLASS_NAME_ACTIVE); } } }; _proto.dispose = function dispose() { - $.removeData(this._element, DATA_KEY$1); + $__default['default'].removeData(this._element, DATA_KEY$1); this._element = null; } // Static ; - Button._jQueryInterface = function _jQueryInterface(config) { + Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) { return this.each(function () { - var data = $(this).data(DATA_KEY$1); + var $element = $__default['default'](this); + var data = $element.data(DATA_KEY$1); if (!data) { data = new Button(this); - $(this).data(DATA_KEY$1, data); + $element.data(DATA_KEY$1, data); } + data.shouldAvoidTriggerChange = avoidTriggerChange; + if (config === 'toggle') { data[config](); } @@ -506,12 +512,12 @@ */ - $(document).on(EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE_CARROT, function (event) { + $__default['default'](document).on(EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE_CARROT, function (event) { var button = event.target; var initialButton = button; - if (!$(button).hasClass(CLASS_NAME_BUTTON)) { - button = $(button).closest(SELECTOR_BUTTON)[0]; + if (!$__default['default'](button).hasClass(CLASS_NAME_BUTTON)) { + button = $__default['default'](button).closest(SELECTOR_BUTTON)[0]; } if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) { @@ -525,15 +531,15 @@ return; } - if (initialButton.tagName !== 'LABEL' || inputBtn && inputBtn.type !== 'checkbox') { - Button._jQueryInterface.call($(button), 'toggle'); + if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') { + Button._jQueryInterface.call($__default['default'](button), 'toggle', initialButton.tagName === 'INPUT'); } } }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) { - var button = $(event.target).closest(SELECTOR_BUTTON)[0]; - $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type)); + var button = $__default['default'](event.target).closest(SELECTOR_BUTTON)[0]; + $__default['default'](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type)); }); - $(window).on(EVENT_LOAD_DATA_API, function () { + $__default['default'](window).on(EVENT_LOAD_DATA_API, function () { // ensure correct active class is set to match the controls' actual values/states // find all checkboxes/readio buttons inside data-toggle groups var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS)); @@ -568,11 +574,11 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME$1] = Button._jQueryInterface; - $.fn[NAME$1].Constructor = Button; + $__default['default'].fn[NAME$1] = Button._jQueryInterface; + $__default['default'].fn[NAME$1].Constructor = Button; - $.fn[NAME$1].noConflict = function () { - $.fn[NAME$1] = JQUERY_NO_CONFLICT$1; + $__default['default'].fn[NAME$1].noConflict = function () { + $__default['default'].fn[NAME$1] = JQUERY_NO_CONFLICT$1; return Button._jQueryInterface; }; @@ -583,11 +589,11 @@ */ var NAME$2 = 'carousel'; - var VERSION$2 = '4.5.2'; + var VERSION$2 = '4.5.3'; var DATA_KEY$2 = 'bs.carousel'; var EVENT_KEY$2 = "." + DATA_KEY$2; var DATA_API_KEY$2 = '.data-api'; - var JQUERY_NO_CONFLICT$2 = $.fn[NAME$2]; + var JQUERY_NO_CONFLICT$2 = $__default['default'].fn[NAME$2]; var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key @@ -684,9 +690,10 @@ }; _proto.nextWhenVisible = function nextWhenVisible() { - // Don't call next when the page isn't visible + var $element = $__default['default'](this._element); // Don't call next when the page isn't visible // or the carousel or its parent isn't visible - if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') { + + if (!document.hidden && $element.is(':visible') && $element.css('visibility') !== 'hidden') { this.next(); } }; @@ -738,7 +745,7 @@ } if (this._isSliding) { - $(this._element).one(EVENT_SLID, function () { + $__default['default'](this._element).one(EVENT_SLID, function () { return _this.to(index); }); return; @@ -756,8 +763,8 @@ }; _proto.dispose = function dispose() { - $(this._element).off(EVENT_KEY$2); - $.removeData(this._element, DATA_KEY$2); + $__default['default'](this._element).off(EVENT_KEY$2); + $__default['default'].removeData(this._element, DATA_KEY$2); this._items = null; this._config = null; this._element = null; @@ -799,13 +806,13 @@ var _this2 = this; if (this._config.keyboard) { - $(this._element).on(EVENT_KEYDOWN, function (event) { + $__default['default'](this._element).on(EVENT_KEYDOWN, function (event) { return _this2._keydown(event); }); } if (this._config.pause === 'hover') { - $(this._element).on(EVENT_MOUSEENTER, function (event) { + $__default['default'](this._element).on(EVENT_MOUSEENTER, function (event) { return _this2.pause(event); }).on(EVENT_MOUSELEAVE, function (event) { return _this2.cycle(event); @@ -868,27 +875,27 @@ } }; - $(this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) { + $__default['default'](this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) { return e.preventDefault(); }); if (this._pointerEvent) { - $(this._element).on(EVENT_POINTERDOWN, function (event) { + $__default['default'](this._element).on(EVENT_POINTERDOWN, function (event) { return start(event); }); - $(this._element).on(EVENT_POINTERUP, function (event) { + $__default['default'](this._element).on(EVENT_POINTERUP, function (event) { return end(event); }); this._element.classList.add(CLASS_NAME_POINTER_EVENT); } else { - $(this._element).on(EVENT_TOUCHSTART, function (event) { + $__default['default'](this._element).on(EVENT_TOUCHSTART, function (event) { return start(event); }); - $(this._element).on(EVENT_TOUCHMOVE, function (event) { + $__default['default'](this._element).on(EVENT_TOUCHMOVE, function (event) { return move(event); }); - $(this._element).on(EVENT_TOUCHEND, function (event) { + $__default['default'](this._element).on(EVENT_TOUCHEND, function (event) { return end(event); }); } @@ -940,25 +947,25 @@ var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM)); - var slideEvent = $.Event(EVENT_SLIDE, { + var slideEvent = $__default['default'].Event(EVENT_SLIDE, { relatedTarget: relatedTarget, direction: eventDirectionName, from: fromIndex, to: targetIndex }); - $(this._element).trigger(slideEvent); + $__default['default'](this._element).trigger(slideEvent); return slideEvent; }; _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) { if (this._indicatorsElement) { var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE$1)); - $(indicators).removeClass(CLASS_NAME_ACTIVE$1); + $__default['default'](indicators).removeClass(CLASS_NAME_ACTIVE$1); var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; if (nextIndicator) { - $(nextIndicator).addClass(CLASS_NAME_ACTIVE$1); + $__default['default'](nextIndicator).addClass(CLASS_NAME_ACTIVE$1); } } }; @@ -989,7 +996,7 @@ eventDirectionName = DIRECTION_RIGHT; } - if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE$1)) { + if (nextElement && $__default['default'](nextElement).hasClass(CLASS_NAME_ACTIVE$1)) { this._isSliding = false; return; } @@ -1013,18 +1020,18 @@ this._setActiveIndicatorElement(nextElement); - var slidEvent = $.Event(EVENT_SLID, { + var slidEvent = $__default['default'].Event(EVENT_SLID, { relatedTarget: nextElement, direction: eventDirectionName, from: activeElementIndex, to: nextElementIndex }); - if ($(this._element).hasClass(CLASS_NAME_SLIDE)) { - $(nextElement).addClass(orderClassName); + if ($__default['default'](this._element).hasClass(CLASS_NAME_SLIDE)) { + $__default['default'](nextElement).addClass(orderClassName); Util.reflow(nextElement); - $(activeElement).addClass(directionalClassName); - $(nextElement).addClass(directionalClassName); + $__default['default'](activeElement).addClass(directionalClassName); + $__default['default'](nextElement).addClass(directionalClassName); var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10); if (nextElementInterval) { @@ -1035,19 +1042,19 @@ } var transitionDuration = Util.getTransitionDurationFromElement(activeElement); - $(activeElement).one(Util.TRANSITION_END, function () { - $(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(CLASS_NAME_ACTIVE$1); - $(activeElement).removeClass(CLASS_NAME_ACTIVE$1 + " " + orderClassName + " " + directionalClassName); + $__default['default'](activeElement).one(Util.TRANSITION_END, function () { + $__default['default'](nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(CLASS_NAME_ACTIVE$1); + $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE$1 + " " + orderClassName + " " + directionalClassName); _this4._isSliding = false; setTimeout(function () { - return $(_this4._element).trigger(slidEvent); + return $__default['default'](_this4._element).trigger(slidEvent); }, 0); }).emulateTransitionEnd(transitionDuration); } else { - $(activeElement).removeClass(CLASS_NAME_ACTIVE$1); - $(nextElement).addClass(CLASS_NAME_ACTIVE$1); + $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE$1); + $__default['default'](nextElement).addClass(CLASS_NAME_ACTIVE$1); this._isSliding = false; - $(this._element).trigger(slidEvent); + $__default['default'](this._element).trigger(slidEvent); } if (isCycling) { @@ -1058,9 +1065,9 @@ Carousel._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var data = $(this).data(DATA_KEY$2); + var data = $__default['default'](this).data(DATA_KEY$2); - var _config = _extends({}, Default, $(this).data()); + var _config = _extends({}, Default, $__default['default'](this).data()); if (typeof config === 'object') { _config = _extends({}, _config, config); @@ -1070,7 +1077,7 @@ if (!data) { data = new Carousel(this, _config); - $(this).data(DATA_KEY$2, data); + $__default['default'](this).data(DATA_KEY$2, data); } if (typeof config === 'number') { @@ -1095,13 +1102,13 @@ return; } - var target = $(selector)[0]; + var target = $__default['default'](selector)[0]; - if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) { + if (!target || !$__default['default'](target).hasClass(CLASS_NAME_CAROUSEL)) { return; } - var config = _extends({}, $(target).data(), $(this).data()); + var config = _extends({}, $__default['default'](target).data(), $__default['default'](this).data()); var slideIndex = this.getAttribute('data-slide-to'); @@ -1109,10 +1116,10 @@ config.interval = false; } - Carousel._jQueryInterface.call($(target), config); + Carousel._jQueryInterface.call($__default['default'](target), config); if (slideIndex) { - $(target).data(DATA_KEY$2).to(slideIndex); + $__default['default'](target).data(DATA_KEY$2).to(slideIndex); } event.preventDefault(); @@ -1139,12 +1146,12 @@ */ - $(document).on(EVENT_CLICK_DATA_API$2, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler); - $(window).on(EVENT_LOAD_DATA_API$1, function () { + $__default['default'](document).on(EVENT_CLICK_DATA_API$2, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler); + $__default['default'](window).on(EVENT_LOAD_DATA_API$1, function () { var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE)); for (var i = 0, len = carousels.length; i < len; i++) { - var $carousel = $(carousels[i]); + var $carousel = $__default['default'](carousels[i]); Carousel._jQueryInterface.call($carousel, $carousel.data()); } @@ -1155,11 +1162,11 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME$2] = Carousel._jQueryInterface; - $.fn[NAME$2].Constructor = Carousel; + $__default['default'].fn[NAME$2] = Carousel._jQueryInterface; + $__default['default'].fn[NAME$2].Constructor = Carousel; - $.fn[NAME$2].noConflict = function () { - $.fn[NAME$2] = JQUERY_NO_CONFLICT$2; + $__default['default'].fn[NAME$2].noConflict = function () { + $__default['default'].fn[NAME$2] = JQUERY_NO_CONFLICT$2; return Carousel._jQueryInterface; }; @@ -1170,11 +1177,11 @@ */ var NAME$3 = 'collapse'; - var VERSION$3 = '4.5.2'; + var VERSION$3 = '4.5.3'; var DATA_KEY$3 = 'bs.collapse'; var EVENT_KEY$3 = "." + DATA_KEY$3; var DATA_API_KEY$3 = '.data-api'; - var JQUERY_NO_CONFLICT$3 = $.fn[NAME$3]; + var JQUERY_NO_CONFLICT$3 = $__default['default'].fn[NAME$3]; var Default$1 = { toggle: true, parent: '' @@ -1240,7 +1247,7 @@ // Public _proto.toggle = function toggle() { - if ($(this._element).hasClass(CLASS_NAME_SHOW$1)) { + if ($__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) { this.hide(); } else { this.show(); @@ -1250,7 +1257,7 @@ _proto.show = function show() { var _this = this; - if (this._isTransitioning || $(this._element).hasClass(CLASS_NAME_SHOW$1)) { + if (this._isTransitioning || $__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) { return; } @@ -1272,64 +1279,64 @@ } if (actives) { - activesData = $(actives).not(this._selector).data(DATA_KEY$3); + activesData = $__default['default'](actives).not(this._selector).data(DATA_KEY$3); if (activesData && activesData._isTransitioning) { return; } } - var startEvent = $.Event(EVENT_SHOW); - $(this._element).trigger(startEvent); + var startEvent = $__default['default'].Event(EVENT_SHOW); + $__default['default'](this._element).trigger(startEvent); if (startEvent.isDefaultPrevented()) { return; } if (actives) { - Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide'); + Collapse._jQueryInterface.call($__default['default'](actives).not(this._selector), 'hide'); if (!activesData) { - $(actives).data(DATA_KEY$3, null); + $__default['default'](actives).data(DATA_KEY$3, null); } } var dimension = this._getDimension(); - $(this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING); + $__default['default'](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING); this._element.style[dimension] = 0; if (this._triggerArray.length) { - $(this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true); + $__default['default'](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true); } this.setTransitioning(true); var complete = function complete() { - $(_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW$1); + $__default['default'](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW$1); _this._element.style[dimension] = ''; _this.setTransitioning(false); - $(_this._element).trigger(EVENT_SHOWN); + $__default['default'](_this._element).trigger(EVENT_SHOWN); }; var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); var scrollSize = "scroll" + capitalizedDimension; var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); this._element.style[dimension] = this._element[scrollSize] + "px"; }; _proto.hide = function hide() { var _this2 = this; - if (this._isTransitioning || !$(this._element).hasClass(CLASS_NAME_SHOW$1)) { + if (this._isTransitioning || !$__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) { return; } - var startEvent = $.Event(EVENT_HIDE); - $(this._element).trigger(startEvent); + var startEvent = $__default['default'].Event(EVENT_HIDE); + $__default['default'](this._element).trigger(startEvent); if (startEvent.isDefaultPrevented()) { return; @@ -1339,7 +1346,7 @@ this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px"; Util.reflow(this._element); - $(this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW$1); + $__default['default'](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW$1); var triggerArrayLength = this._triggerArray.length; if (triggerArrayLength > 0) { @@ -1348,10 +1355,10 @@ var selector = Util.getSelectorFromElement(trigger); if (selector !== null) { - var $elem = $([].slice.call(document.querySelectorAll(selector))); + var $elem = $__default['default']([].slice.call(document.querySelectorAll(selector))); if (!$elem.hasClass(CLASS_NAME_SHOW$1)) { - $(trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false); + $__default['default'](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false); } } } @@ -1362,12 +1369,12 @@ var complete = function complete() { _this2.setTransitioning(false); - $(_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN); + $__default['default'](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN); }; this._element.style[dimension] = ''; var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); }; _proto.setTransitioning = function setTransitioning(isTransitioning) { @@ -1375,7 +1382,7 @@ }; _proto.dispose = function dispose() { - $.removeData(this._element, DATA_KEY$3); + $__default['default'].removeData(this._element, DATA_KEY$3); this._config = null; this._parent = null; this._element = null; @@ -1393,7 +1400,7 @@ }; _proto._getDimension = function _getDimension() { - var hasWidth = $(this._element).hasClass(DIMENSION_WIDTH); + var hasWidth = $__default['default'](this._element).hasClass(DIMENSION_WIDTH); return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT; }; @@ -1414,17 +1421,17 @@ var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]"; var children = [].slice.call(parent.querySelectorAll(selector)); - $(children).each(function (i, element) { + $__default['default'](children).each(function (i, element) { _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]); }); return parent; }; _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) { - var isOpen = $(element).hasClass(CLASS_NAME_SHOW$1); + var isOpen = $__default['default'](element).hasClass(CLASS_NAME_SHOW$1); if (triggerArray.length) { - $(triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen); + $__default['default'](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen); } } // Static ; @@ -1436,10 +1443,10 @@ Collapse._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var $this = $(this); - var data = $this.data(DATA_KEY$3); + var $element = $__default['default'](this); + var data = $element.data(DATA_KEY$3); - var _config = _extends({}, Default$1, $this.data(), typeof config === 'object' && config ? config : {}); + var _config = _extends({}, Default$1, $element.data(), typeof config === 'object' && config ? config : {}); if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) { _config.toggle = false; @@ -1447,7 +1454,7 @@ if (!data) { data = new Collapse(this, _config); - $this.data(DATA_KEY$3, data); + $element.data(DATA_KEY$3, data); } if (typeof config === 'string') { @@ -1481,17 +1488,17 @@ */ - $(document).on(EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, function (event) { + $__default['default'](document).on(EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, function (event) { // preventDefault only for <a> elements (which change the URL) not inside the collapsible element if (event.currentTarget.tagName === 'A') { event.preventDefault(); } - var $trigger = $(this); + var $trigger = $__default['default'](this); var selector = Util.getSelectorFromElement(this); var selectors = [].slice.call(document.querySelectorAll(selector)); - $(selectors).each(function () { - var $target = $(this); + $__default['default'](selectors).each(function () { + var $target = $__default['default'](this); var data = $target.data(DATA_KEY$3); var config = data ? 'toggle' : $trigger.data(); @@ -1504,11 +1511,11 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME$3] = Collapse._jQueryInterface; - $.fn[NAME$3].Constructor = Collapse; + $__default['default'].fn[NAME$3] = Collapse._jQueryInterface; + $__default['default'].fn[NAME$3].Constructor = Collapse; - $.fn[NAME$3].noConflict = function () { - $.fn[NAME$3] = JQUERY_NO_CONFLICT$3; + $__default['default'].fn[NAME$3].noConflict = function () { + $__default['default'].fn[NAME$3] = JQUERY_NO_CONFLICT$3; return Collapse._jQueryInterface; }; @@ -4133,11 +4140,11 @@ */ var NAME$4 = 'dropdown'; - var VERSION$4 = '4.5.2'; + var VERSION$4 = '4.5.3'; var DATA_KEY$4 = 'bs.dropdown'; var EVENT_KEY$4 = "." + DATA_KEY$4; var DATA_API_KEY$4 = '.data-api'; - var JQUERY_NO_CONFLICT$4 = $.fn[NAME$4]; + var JQUERY_NO_CONFLICT$4 = $__default['default'].fn[NAME$4]; var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key @@ -4215,11 +4222,11 @@ // Public _proto.toggle = function toggle() { - if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) { + if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED)) { return; } - var isActive = $(this._menu).hasClass(CLASS_NAME_SHOW$2); + var isActive = $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2); Dropdown._clearMenus(); @@ -4235,18 +4242,18 @@ usePopper = false; } - if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW$2)) { + if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2)) { return; } var relatedTarget = { relatedTarget: this._element }; - var showEvent = $.Event(EVENT_SHOW$1, relatedTarget); + var showEvent = $__default['default'].Event(EVENT_SHOW$1, relatedTarget); var parent = Dropdown._getParentFromElement(this._element); - $(parent).trigger(showEvent); + $__default['default'](parent).trigger(showEvent); if (showEvent.isDefaultPrevented()) { return; @@ -4278,7 +4285,7 @@ if (this._config.boundary !== 'scrollParent') { - $(parent).addClass(CLASS_NAME_POSITION_STATIC); + $__default['default'](parent).addClass(CLASS_NAME_POSITION_STATIC); } this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig()); @@ -4288,31 +4295,31 @@ // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html - if ('ontouchstart' in document.documentElement && $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) { - $(document.body).children().on('mouseover', null, $.noop); + if ('ontouchstart' in document.documentElement && $__default['default'](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) { + $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop); } this._element.focus(); this._element.setAttribute('aria-expanded', true); - $(this._menu).toggleClass(CLASS_NAME_SHOW$2); - $(parent).toggleClass(CLASS_NAME_SHOW$2).trigger($.Event(EVENT_SHOWN$1, relatedTarget)); + $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW$2); + $__default['default'](parent).toggleClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_SHOWN$1, relatedTarget)); }; _proto.hide = function hide() { - if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW$2)) { + if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || !$__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2)) { return; } var relatedTarget = { relatedTarget: this._element }; - var hideEvent = $.Event(EVENT_HIDE$1, relatedTarget); + var hideEvent = $__default['default'].Event(EVENT_HIDE$1, relatedTarget); var parent = Dropdown._getParentFromElement(this._element); - $(parent).trigger(hideEvent); + $__default['default'](parent).trigger(hideEvent); if (hideEvent.isDefaultPrevented()) { return; @@ -4322,13 +4329,13 @@ this._popper.destroy(); } - $(this._menu).toggleClass(CLASS_NAME_SHOW$2); - $(parent).toggleClass(CLASS_NAME_SHOW$2).trigger($.Event(EVENT_HIDDEN$1, relatedTarget)); + $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW$2); + $__default['default'](parent).toggleClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_HIDDEN$1, relatedTarget)); }; _proto.dispose = function dispose() { - $.removeData(this._element, DATA_KEY$4); - $(this._element).off(EVENT_KEY$4); + $__default['default'].removeData(this._element, DATA_KEY$4); + $__default['default'](this._element).off(EVENT_KEY$4); this._element = null; this._menu = null; @@ -4351,7 +4358,7 @@ _proto._addEventListeners = function _addEventListeners() { var _this = this; - $(this._element).on(EVENT_CLICK, function (event) { + $__default['default'](this._element).on(EVENT_CLICK, function (event) { event.preventDefault(); event.stopPropagation(); @@ -4360,7 +4367,7 @@ }; _proto._getConfig = function _getConfig(config) { - config = _extends({}, this.constructor.Default, $(this._element).data(), config); + config = _extends({}, this.constructor.Default, $__default['default'](this._element).data(), config); Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType); return config; }; @@ -4378,16 +4385,16 @@ }; _proto._getPlacement = function _getPlacement() { - var $parentDropdown = $(this._element.parentNode); + var $parentDropdown = $__default['default'](this._element.parentNode); var placement = PLACEMENT_BOTTOM; // Handle dropup if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) { - placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP; + placement = $__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP; } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) { placement = PLACEMENT_RIGHT; } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) { placement = PLACEMENT_LEFT; - } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) { + } else if ($__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT)) { placement = PLACEMENT_BOTTOMEND; } @@ -4395,7 +4402,7 @@ }; _proto._detectNavbar = function _detectNavbar() { - return $(this._element).closest('.navbar').length > 0; + return $__default['default'](this._element).closest('.navbar').length > 0; }; _proto._getOffset = function _getOffset() { @@ -4441,13 +4448,13 @@ Dropdown._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var data = $(this).data(DATA_KEY$4); + var data = $__default['default'](this).data(DATA_KEY$4); var _config = typeof config === 'object' ? config : null; if (!data) { data = new Dropdown(this, _config); - $(this).data(DATA_KEY$4, data); + $__default['default'](this).data(DATA_KEY$4, data); } if (typeof config === 'string') { @@ -4470,7 +4477,7 @@ for (var i = 0, len = toggles.length; i < len; i++) { var parent = Dropdown._getParentFromElement(toggles[i]); - var context = $(toggles[i]).data(DATA_KEY$4); + var context = $__default['default'](toggles[i]).data(DATA_KEY$4); var relatedTarget = { relatedTarget: toggles[i] }; @@ -4485,16 +4492,16 @@ var dropdownMenu = context._menu; - if (!$(parent).hasClass(CLASS_NAME_SHOW$2)) { + if (!$__default['default'](parent).hasClass(CLASS_NAME_SHOW$2)) { continue; } - if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) { + if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default['default'].contains(parent, event.target)) { continue; } - var hideEvent = $.Event(EVENT_HIDE$1, relatedTarget); - $(parent).trigger(hideEvent); + var hideEvent = $__default['default'].Event(EVENT_HIDE$1, relatedTarget); + $__default['default'](parent).trigger(hideEvent); if (hideEvent.isDefaultPrevented()) { continue; @@ -4503,7 +4510,7 @@ if ('ontouchstart' in document.documentElement) { - $(document.body).children().off('mouseover', null, $.noop); + $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop); } toggles[i].setAttribute('aria-expanded', 'false'); @@ -4512,8 +4519,8 @@ context._popper.destroy(); } - $(dropdownMenu).removeClass(CLASS_NAME_SHOW$2); - $(parent).removeClass(CLASS_NAME_SHOW$2).trigger($.Event(EVENT_HIDDEN$1, relatedTarget)); + $__default['default'](dropdownMenu).removeClass(CLASS_NAME_SHOW$2); + $__default['default'](parent).removeClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_HIDDEN$1, relatedTarget)); } }; @@ -4537,17 +4544,17 @@ // - If key is other than escape // - If key is not up or down => not a dropdown command // - If trigger inside the menu => not a dropdown command - if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) { + if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default['default'](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) { return; } - if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) { + if (this.disabled || $__default['default'](this).hasClass(CLASS_NAME_DISABLED)) { return; } var parent = Dropdown._getParentFromElement(this); - var isActive = $(parent).hasClass(CLASS_NAME_SHOW$2); + var isActive = $__default['default'](parent).hasClass(CLASS_NAME_SHOW$2); if (!isActive && event.which === ESCAPE_KEYCODE) { return; @@ -4556,17 +4563,17 @@ event.preventDefault(); event.stopPropagation(); - if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) { + if (!isActive || event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE) { if (event.which === ESCAPE_KEYCODE) { - $(parent.querySelector(SELECTOR_DATA_TOGGLE$2)).trigger('focus'); + $__default['default'](parent.querySelector(SELECTOR_DATA_TOGGLE$2)).trigger('focus'); } - $(this).trigger('click'); + $__default['default'](this).trigger('click'); return; } var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) { - return $(item).is(':visible'); + return $__default['default'](item).is(':visible'); }); if (items.length === 0) { @@ -4618,11 +4625,11 @@ */ - $(document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API$4 + " " + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$2, function (event) { + $__default['default'](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API$4 + " " + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$2, function (event) { event.preventDefault(); event.stopPropagation(); - Dropdown._jQueryInterface.call($(this), 'toggle'); + Dropdown._jQueryInterface.call($__default['default'](this), 'toggle'); }).on(EVENT_CLICK_DATA_API$4, SELECTOR_FORM_CHILD, function (e) { e.stopPropagation(); }); @@ -4632,11 +4639,11 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME$4] = Dropdown._jQueryInterface; - $.fn[NAME$4].Constructor = Dropdown; + $__default['default'].fn[NAME$4] = Dropdown._jQueryInterface; + $__default['default'].fn[NAME$4].Constructor = Dropdown; - $.fn[NAME$4].noConflict = function () { - $.fn[NAME$4] = JQUERY_NO_CONFLICT$4; + $__default['default'].fn[NAME$4].noConflict = function () { + $__default['default'].fn[NAME$4] = JQUERY_NO_CONFLICT$4; return Dropdown._jQueryInterface; }; @@ -4647,11 +4654,11 @@ */ var NAME$5 = 'modal'; - var VERSION$5 = '4.5.2'; + var VERSION$5 = '4.5.3'; var DATA_KEY$5 = 'bs.modal'; var EVENT_KEY$5 = "." + DATA_KEY$5; var DATA_API_KEY$5 = '.data-api'; - var JQUERY_NO_CONFLICT$5 = $.fn[NAME$5]; + var JQUERY_NO_CONFLICT$5 = $__default['default'].fn[NAME$5]; var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key var Default$3 = { @@ -4725,14 +4732,14 @@ return; } - if ($(this._element).hasClass(CLASS_NAME_FADE$1)) { + if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE$1)) { this._isTransitioning = true; } - var showEvent = $.Event(EVENT_SHOW$2, { + var showEvent = $__default['default'].Event(EVENT_SHOW$2, { relatedTarget: relatedTarget }); - $(this._element).trigger(showEvent); + $__default['default'](this._element).trigger(showEvent); if (this._isShown || showEvent.isDefaultPrevented()) { return; @@ -4750,12 +4757,12 @@ this._setResizeEvent(); - $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) { + $__default['default'](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) { return _this.hide(event); }); - $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () { - $(_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) { - if ($(event.target).is(_this._element)) { + $__default['default'](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () { + $__default['default'](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) { + if ($__default['default'](event.target).is(_this._element)) { _this._ignoreBackdropClick = true; } }); @@ -4777,15 +4784,15 @@ return; } - var hideEvent = $.Event(EVENT_HIDE$2); - $(this._element).trigger(hideEvent); + var hideEvent = $__default['default'].Event(EVENT_HIDE$2); + $__default['default'](this._element).trigger(hideEvent); if (!this._isShown || hideEvent.isDefaultPrevented()) { return; } this._isShown = false; - var transition = $(this._element).hasClass(CLASS_NAME_FADE$1); + var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1); if (transition) { this._isTransitioning = true; @@ -4795,14 +4802,14 @@ this._setResizeEvent(); - $(document).off(EVENT_FOCUSIN); - $(this._element).removeClass(CLASS_NAME_SHOW$3); - $(this._element).off(EVENT_CLICK_DISMISS); - $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS); + $__default['default'](document).off(EVENT_FOCUSIN); + $__default['default'](this._element).removeClass(CLASS_NAME_SHOW$3); + $__default['default'](this._element).off(EVENT_CLICK_DISMISS); + $__default['default'](this._dialog).off(EVENT_MOUSEDOWN_DISMISS); if (transition) { var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $(this._element).one(Util.TRANSITION_END, function (event) { + $__default['default'](this._element).one(Util.TRANSITION_END, function (event) { return _this2._hideModal(event); }).emulateTransitionEnd(transitionDuration); } else { @@ -4812,7 +4819,7 @@ _proto.dispose = function dispose() { [window, this._element, this._dialog].forEach(function (htmlElement) { - return $(htmlElement).off(EVENT_KEY$5); + return $__default['default'](htmlElement).off(EVENT_KEY$5); }); /** * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API` @@ -4820,8 +4827,8 @@ * It will remove `EVENT_CLICK_DATA_API` event that should remain */ - $(document).off(EVENT_FOCUSIN); - $.removeData(this._element, DATA_KEY$5); + $__default['default'](document).off(EVENT_FOCUSIN); + $__default['default'].removeData(this._element, DATA_KEY$5); this._config = null; this._element = null; this._dialog = null; @@ -4848,10 +4855,10 @@ var _this3 = this; if (this._config.backdrop === 'static') { - var hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED); - $(this._element).trigger(hideEventPrevented); + var hideEventPrevented = $__default['default'].Event(EVENT_HIDE_PREVENTED); + $__default['default'](this._element).trigger(hideEventPrevented); - if (hideEventPrevented.defaultPrevented) { + if (hideEventPrevented.isDefaultPrevented()) { return; } @@ -4864,12 +4871,12 @@ this._element.classList.add(CLASS_NAME_STATIC); var modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog); - $(this._element).off(Util.TRANSITION_END); - $(this._element).one(Util.TRANSITION_END, function () { + $__default['default'](this._element).off(Util.TRANSITION_END); + $__default['default'](this._element).one(Util.TRANSITION_END, function () { _this3._element.classList.remove(CLASS_NAME_STATIC); if (!isModalOverflowing) { - $(_this3._element).one(Util.TRANSITION_END, function () { + $__default['default'](_this3._element).one(Util.TRANSITION_END, function () { _this3._element.style.overflowY = ''; }).emulateTransitionEnd(_this3._element, modalTransitionDuration); } @@ -4884,7 +4891,7 @@ _proto._showElement = function _showElement(relatedTarget) { var _this4 = this; - var transition = $(this._element).hasClass(CLASS_NAME_FADE$1); + var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1); var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null; if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { @@ -4900,7 +4907,7 @@ this._element.setAttribute('role', 'dialog'); - if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) { + if ($__default['default'](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) { modalBody.scrollTop = 0; } else { this._element.scrollTop = 0; @@ -4910,13 +4917,13 @@ Util.reflow(this._element); } - $(this._element).addClass(CLASS_NAME_SHOW$3); + $__default['default'](this._element).addClass(CLASS_NAME_SHOW$3); if (this._config.focus) { this._enforceFocus(); } - var shownEvent = $.Event(EVENT_SHOWN$2, { + var shownEvent = $__default['default'].Event(EVENT_SHOWN$2, { relatedTarget: relatedTarget }); @@ -4926,12 +4933,12 @@ } _this4._isTransitioning = false; - $(_this4._element).trigger(shownEvent); + $__default['default'](_this4._element).trigger(shownEvent); }; if (transition) { var transitionDuration = Util.getTransitionDurationFromElement(this._dialog); - $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration); + $__default['default'](this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration); } else { transitionComplete(); } @@ -4940,9 +4947,9 @@ _proto._enforceFocus = function _enforceFocus() { var _this5 = this; - $(document).off(EVENT_FOCUSIN) // Guard against infinite focus loop + $__default['default'](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop .on(EVENT_FOCUSIN, function (event) { - if (document !== event.target && _this5._element !== event.target && $(_this5._element).has(event.target).length === 0) { + if (document !== event.target && _this5._element !== event.target && $__default['default'](_this5._element).has(event.target).length === 0) { _this5._element.focus(); } }); @@ -4952,7 +4959,7 @@ var _this6 = this; if (this._isShown) { - $(this._element).on(EVENT_KEYDOWN_DISMISS, function (event) { + $__default['default'](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) { if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE$1) { event.preventDefault(); @@ -4962,7 +4969,7 @@ } }); } else if (!this._isShown) { - $(this._element).off(EVENT_KEYDOWN_DISMISS); + $__default['default'](this._element).off(EVENT_KEYDOWN_DISMISS); } }; @@ -4970,11 +4977,11 @@ var _this7 = this; if (this._isShown) { - $(window).on(EVENT_RESIZE, function (event) { + $__default['default'](window).on(EVENT_RESIZE, function (event) { return _this7.handleUpdate(event); }); } else { - $(window).off(EVENT_RESIZE); + $__default['default'](window).off(EVENT_RESIZE); } }; @@ -4992,19 +4999,19 @@ this._isTransitioning = false; this._showBackdrop(function () { - $(document.body).removeClass(CLASS_NAME_OPEN); + $__default['default'](document.body).removeClass(CLASS_NAME_OPEN); _this8._resetAdjustments(); _this8._resetScrollbar(); - $(_this8._element).trigger(EVENT_HIDDEN$2); + $__default['default'](_this8._element).trigger(EVENT_HIDDEN$2); }); }; _proto._removeBackdrop = function _removeBackdrop() { if (this._backdrop) { - $(this._backdrop).remove(); + $__default['default'](this._backdrop).remove(); this._backdrop = null; } }; @@ -5012,7 +5019,7 @@ _proto._showBackdrop = function _showBackdrop(callback) { var _this9 = this; - var animate = $(this._element).hasClass(CLASS_NAME_FADE$1) ? CLASS_NAME_FADE$1 : ''; + var animate = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1) ? CLASS_NAME_FADE$1 : ''; if (this._isShown && this._config.backdrop) { this._backdrop = document.createElement('div'); @@ -5022,8 +5029,8 @@ this._backdrop.classList.add(animate); } - $(this._backdrop).appendTo(document.body); - $(this._element).on(EVENT_CLICK_DISMISS, function (event) { + $__default['default'](this._backdrop).appendTo(document.body); + $__default['default'](this._element).on(EVENT_CLICK_DISMISS, function (event) { if (_this9._ignoreBackdropClick) { _this9._ignoreBackdropClick = false; return; @@ -5040,7 +5047,7 @@ Util.reflow(this._backdrop); } - $(this._backdrop).addClass(CLASS_NAME_SHOW$3); + $__default['default'](this._backdrop).addClass(CLASS_NAME_SHOW$3); if (!callback) { return; @@ -5052,9 +5059,9 @@ } var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop); - $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration); + $__default['default'](this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration); } else if (!this._isShown && this._backdrop) { - $(this._backdrop).removeClass(CLASS_NAME_SHOW$3); + $__default['default'](this._backdrop).removeClass(CLASS_NAME_SHOW$3); var callbackRemove = function callbackRemove() { _this9._removeBackdrop(); @@ -5064,10 +5071,10 @@ } }; - if ($(this._element).hasClass(CLASS_NAME_FADE$1)) { + if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE$1)) { var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop); - $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration); + $__default['default'](this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration); } else { callbackRemove(); } @@ -5112,46 +5119,46 @@ var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT)); var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding - $(fixedContent).each(function (index, element) { + $__default['default'](fixedContent).each(function (index, element) { var actualPadding = element.style.paddingRight; - var calculatedPadding = $(element).css('padding-right'); - $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px"); + var calculatedPadding = $__default['default'](element).css('padding-right'); + $__default['default'](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px"); }); // Adjust sticky content margin - $(stickyContent).each(function (index, element) { + $__default['default'](stickyContent).each(function (index, element) { var actualMargin = element.style.marginRight; - var calculatedMargin = $(element).css('margin-right'); - $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px"); + var calculatedMargin = $__default['default'](element).css('margin-right'); + $__default['default'](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px"); }); // Adjust body padding var actualPadding = document.body.style.paddingRight; - var calculatedPadding = $(document.body).css('padding-right'); - $(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px"); + var calculatedPadding = $__default['default'](document.body).css('padding-right'); + $__default['default'](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px"); } - $(document.body).addClass(CLASS_NAME_OPEN); + $__default['default'](document.body).addClass(CLASS_NAME_OPEN); }; _proto._resetScrollbar = function _resetScrollbar() { // Restore fixed content padding var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT)); - $(fixedContent).each(function (index, element) { - var padding = $(element).data('padding-right'); - $(element).removeData('padding-right'); + $__default['default'](fixedContent).each(function (index, element) { + var padding = $__default['default'](element).data('padding-right'); + $__default['default'](element).removeData('padding-right'); element.style.paddingRight = padding ? padding : ''; }); // Restore sticky content var elements = [].slice.call(document.querySelectorAll("" + SELECTOR_STICKY_CONTENT)); - $(elements).each(function (index, element) { - var margin = $(element).data('margin-right'); + $__default['default'](elements).each(function (index, element) { + var margin = $__default['default'](element).data('margin-right'); if (typeof margin !== 'undefined') { - $(element).css('margin-right', margin).removeData('margin-right'); + $__default['default'](element).css('margin-right', margin).removeData('margin-right'); } }); // Restore body padding - var padding = $(document.body).data('padding-right'); - $(document.body).removeData('padding-right'); + var padding = $__default['default'](document.body).data('padding-right'); + $__default['default'](document.body).removeData('padding-right'); document.body.style.paddingRight = padding ? padding : ''; }; @@ -5168,13 +5175,13 @@ Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) { return this.each(function () { - var data = $(this).data(DATA_KEY$5); + var data = $__default['default'](this).data(DATA_KEY$5); - var _config = _extends({}, Default$3, $(this).data(), typeof config === 'object' && config ? config : {}); + var _config = _extends({}, Default$3, $__default['default'](this).data(), typeof config === 'object' && config ? config : {}); if (!data) { data = new Modal(this, _config); - $(this).data(DATA_KEY$5, data); + $__default['default'](this).data(DATA_KEY$5, data); } if (typeof config === 'string') { @@ -5210,7 +5217,7 @@ */ - $(document).on(EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, function (event) { + $__default['default'](document).on(EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, function (event) { var _this11 = this; var target; @@ -5220,26 +5227,26 @@ target = document.querySelector(selector); } - var config = $(target).data(DATA_KEY$5) ? 'toggle' : _extends({}, $(target).data(), $(this).data()); + var config = $__default['default'](target).data(DATA_KEY$5) ? 'toggle' : _extends({}, $__default['default'](target).data(), $__default['default'](this).data()); if (this.tagName === 'A' || this.tagName === 'AREA') { event.preventDefault(); } - var $target = $(target).one(EVENT_SHOW$2, function (showEvent) { + var $target = $__default['default'](target).one(EVENT_SHOW$2, function (showEvent) { if (showEvent.isDefaultPrevented()) { // Only register focus restorer if modal will actually get shown return; } $target.one(EVENT_HIDDEN$2, function () { - if ($(_this11).is(':visible')) { + if ($__default['default'](_this11).is(':visible')) { _this11.focus(); } }); }); - Modal._jQueryInterface.call($(target), config, this); + Modal._jQueryInterface.call($__default['default'](target), config, this); }); /** * ------------------------------------------------------------------------ @@ -5247,17 +5254,17 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME$5] = Modal._jQueryInterface; - $.fn[NAME$5].Constructor = Modal; + $__default['default'].fn[NAME$5] = Modal._jQueryInterface; + $__default['default'].fn[NAME$5].Constructor = Modal; - $.fn[NAME$5].noConflict = function () { - $.fn[NAME$5] = JQUERY_NO_CONFLICT$5; + $__default['default'].fn[NAME$5].noConflict = function () { + $__default['default'].fn[NAME$5] = JQUERY_NO_CONFLICT$5; return Modal._jQueryInterface; }; /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): tools/sanitizer.js + * Bootstrap (v4.5.3): tools/sanitizer.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -5383,10 +5390,10 @@ */ var NAME$6 = 'tooltip'; - var VERSION$6 = '4.5.2'; + var VERSION$6 = '4.5.3'; var DATA_KEY$6 = 'bs.tooltip'; var EVENT_KEY$6 = "." + DATA_KEY$6; - var JQUERY_NO_CONFLICT$6 = $.fn[NAME$6]; + var JQUERY_NO_CONFLICT$6 = $__default['default'].fn[NAME$6]; var CLASS_PREFIX = 'bs-tooltip'; var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']; @@ -5504,11 +5511,11 @@ if (event) { var dataKey = this.constructor.DATA_KEY; - var context = $(event.currentTarget).data(dataKey); + var context = $__default['default'](event.currentTarget).data(dataKey); if (!context) { context = new this.constructor(event.currentTarget, this._getDelegateConfig()); - $(event.currentTarget).data(dataKey, context); + $__default['default'](event.currentTarget).data(dataKey, context); } context._activeTrigger.click = !context._activeTrigger.click; @@ -5519,7 +5526,7 @@ context._leave(null, context); } } else { - if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW$4)) { + if ($__default['default'](this.getTipElement()).hasClass(CLASS_NAME_SHOW$4)) { this._leave(null, this); return; @@ -5531,12 +5538,12 @@ _proto.dispose = function dispose() { clearTimeout(this._timeout); - $.removeData(this.element, this.constructor.DATA_KEY); - $(this.element).off(this.constructor.EVENT_KEY); - $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler); + $__default['default'].removeData(this.element, this.constructor.DATA_KEY); + $__default['default'](this.element).off(this.constructor.EVENT_KEY); + $__default['default'](this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler); if (this.tip) { - $(this.tip).remove(); + $__default['default'](this.tip).remove(); } this._isEnabled = null; @@ -5557,16 +5564,16 @@ _proto.show = function show() { var _this = this; - if ($(this.element).css('display') === 'none') { + if ($__default['default'](this.element).css('display') === 'none') { throw new Error('Please use show on visible elements'); } - var showEvent = $.Event(this.constructor.Event.SHOW); + var showEvent = $__default['default'].Event(this.constructor.Event.SHOW); if (this.isWithContent() && this._isEnabled) { - $(this.element).trigger(showEvent); + $__default['default'](this.element).trigger(showEvent); var shadowRoot = Util.findShadowRoot(this.element); - var isInTheDom = $.contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element); + var isInTheDom = $__default['default'].contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element); if (showEvent.isDefaultPrevented() || !isInTheDom) { return; @@ -5579,7 +5586,7 @@ this.setContent(); if (this.config.animation) { - $(tip).addClass(CLASS_NAME_FADE$2); + $__default['default'](tip).addClass(CLASS_NAME_FADE$2); } var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement; @@ -5590,21 +5597,21 @@ var container = this._getContainer(); - $(tip).data(this.constructor.DATA_KEY, this); + $__default['default'](tip).data(this.constructor.DATA_KEY, this); - if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) { - $(tip).appendTo(container); + if (!$__default['default'].contains(this.element.ownerDocument.documentElement, this.tip)) { + $__default['default'](tip).appendTo(container); } - $(this.element).trigger(this.constructor.Event.INSERTED); + $__default['default'](this.element).trigger(this.constructor.Event.INSERTED); this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment)); - $(tip).addClass(CLASS_NAME_SHOW$4); // If this is a touch-enabled device we add extra + $__default['default'](tip).addClass(CLASS_NAME_SHOW$4); // If this is a touch-enabled device we add extra // empty mouseover listeners to the body's immediate children; // only needed because of broken event delegation on iOS // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html if ('ontouchstart' in document.documentElement) { - $(document.body).children().on('mouseover', null, $.noop); + $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop); } var complete = function complete() { @@ -5614,16 +5621,16 @@ var prevHoverState = _this._hoverState; _this._hoverState = null; - $(_this.element).trigger(_this.constructor.Event.SHOWN); + $__default['default'](_this.element).trigger(_this.constructor.Event.SHOWN); if (prevHoverState === HOVER_STATE_OUT) { _this._leave(null, _this); } }; - if ($(this.tip).hasClass(CLASS_NAME_FADE$2)) { + if ($__default['default'](this.tip).hasClass(CLASS_NAME_FADE$2)) { var transitionDuration = Util.getTransitionDurationFromElement(this.tip); - $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + $__default['default'](this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); } else { complete(); } @@ -5634,7 +5641,7 @@ var _this2 = this; var tip = this.getTipElement(); - var hideEvent = $.Event(this.constructor.Event.HIDE); + var hideEvent = $__default['default'].Event(this.constructor.Event.HIDE); var complete = function complete() { if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) { @@ -5645,7 +5652,7 @@ _this2.element.removeAttribute('aria-describedby'); - $(_this2.element).trigger(_this2.constructor.Event.HIDDEN); + $__default['default'](_this2.element).trigger(_this2.constructor.Event.HIDDEN); if (_this2._popper !== null) { _this2._popper.destroy(); @@ -5656,26 +5663,26 @@ } }; - $(this.element).trigger(hideEvent); + $__default['default'](this.element).trigger(hideEvent); if (hideEvent.isDefaultPrevented()) { return; } - $(tip).removeClass(CLASS_NAME_SHOW$4); // If this is a touch-enabled device we remove the extra + $__default['default'](tip).removeClass(CLASS_NAME_SHOW$4); // If this is a touch-enabled device we remove the extra // empty mouseover listeners we added for iOS support if ('ontouchstart' in document.documentElement) { - $(document.body).children().off('mouseover', null, $.noop); + $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop); } this._activeTrigger[TRIGGER_CLICK] = false; this._activeTrigger[TRIGGER_FOCUS] = false; this._activeTrigger[TRIGGER_HOVER] = false; - if ($(this.tip).hasClass(CLASS_NAME_FADE$2)) { + if ($__default['default'](this.tip).hasClass(CLASS_NAME_FADE$2)) { var transitionDuration = Util.getTransitionDurationFromElement(tip); - $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + $__default['default'](tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); } else { complete(); } @@ -5695,29 +5702,29 @@ }; _proto.addAttachmentClass = function addAttachmentClass(attachment) { - $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment); + $__default['default'](this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment); }; _proto.getTipElement = function getTipElement() { - this.tip = this.tip || $(this.config.template)[0]; + this.tip = this.tip || $__default['default'](this.config.template)[0]; return this.tip; }; _proto.setContent = function setContent() { var tip = this.getTipElement(); - this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle()); - $(tip).removeClass(CLASS_NAME_FADE$2 + " " + CLASS_NAME_SHOW$4); + this.setElementContent($__default['default'](tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle()); + $__default['default'](tip).removeClass(CLASS_NAME_FADE$2 + " " + CLASS_NAME_SHOW$4); }; _proto.setElementContent = function setElementContent($element, content) { if (typeof content === 'object' && (content.nodeType || content.jquery)) { // Content is a DOM node or a jQuery if (this.config.html) { - if (!$(content).parent().is($element)) { + if (!$__default['default'](content).parent().is($element)) { $element.empty().append(content); } } else { - $element.text($(content).text()); + $element.text($__default['default'](content).text()); } return; @@ -5797,10 +5804,10 @@ } if (Util.isElement(this.config.container)) { - return $(this.config.container); + return $__default['default'](this.config.container); } - return $(document).find(this.config.container); + return $__default['default'](document).find(this.config.container); }; _proto._getAttachment = function _getAttachment(placement) { @@ -5813,13 +5820,13 @@ var triggers = this.config.trigger.split(' '); triggers.forEach(function (trigger) { if (trigger === 'click') { - $(_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) { + $__default['default'](_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) { return _this5.toggle(event); }); } else if (trigger !== TRIGGER_MANUAL) { var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN; var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT; - $(_this5.element).on(eventIn, _this5.config.selector, function (event) { + $__default['default'](_this5.element).on(eventIn, _this5.config.selector, function (event) { return _this5._enter(event); }).on(eventOut, _this5.config.selector, function (event) { return _this5._leave(event); @@ -5833,7 +5840,7 @@ } }; - $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler); + $__default['default'](this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler); if (this.config.selector) { this.config = _extends({}, this.config, { @@ -5856,18 +5863,18 @@ _proto._enter = function _enter(event, context) { var dataKey = this.constructor.DATA_KEY; - context = context || $(event.currentTarget).data(dataKey); + context = context || $__default['default'](event.currentTarget).data(dataKey); if (!context) { context = new this.constructor(event.currentTarget, this._getDelegateConfig()); - $(event.currentTarget).data(dataKey, context); + $__default['default'](event.currentTarget).data(dataKey, context); } if (event) { context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; } - if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW$4) || context._hoverState === HOVER_STATE_SHOW) { + if ($__default['default'](context.getTipElement()).hasClass(CLASS_NAME_SHOW$4) || context._hoverState === HOVER_STATE_SHOW) { context._hoverState = HOVER_STATE_SHOW; return; } @@ -5889,11 +5896,11 @@ _proto._leave = function _leave(event, context) { var dataKey = this.constructor.DATA_KEY; - context = context || $(event.currentTarget).data(dataKey); + context = context || $__default['default'](event.currentTarget).data(dataKey); if (!context) { context = new this.constructor(event.currentTarget, this._getDelegateConfig()); - $(event.currentTarget).data(dataKey, context); + $__default['default'](event.currentTarget).data(dataKey, context); } if (event) { @@ -5930,7 +5937,7 @@ }; _proto._getConfig = function _getConfig(config) { - var dataAttributes = $(this.element).data(); + var dataAttributes = $__default['default'](this.element).data(); Object.keys(dataAttributes).forEach(function (dataAttr) { if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) { delete dataAttributes[dataAttr]; @@ -5977,7 +5984,7 @@ }; _proto._cleanTipClass = function _cleanTipClass() { - var $tip = $(this.getTipElement()); + var $tip = $__default['default'](this.getTipElement()); var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX); if (tabClass !== null && tabClass.length) { @@ -6001,7 +6008,7 @@ return; } - $(tip).removeClass(CLASS_NAME_FADE$2); + $__default['default'](tip).removeClass(CLASS_NAME_FADE$2); this.config.animation = false; this.hide(); this.show(); @@ -6011,7 +6018,8 @@ Tooltip._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var data = $(this).data(DATA_KEY$6); + var $element = $__default['default'](this); + var data = $element.data(DATA_KEY$6); var _config = typeof config === 'object' && config; @@ -6021,7 +6029,7 @@ if (!data) { data = new Tooltip(this, _config); - $(this).data(DATA_KEY$6, data); + $element.data(DATA_KEY$6, data); } if (typeof config === 'string') { @@ -6080,11 +6088,11 @@ */ - $.fn[NAME$6] = Tooltip._jQueryInterface; - $.fn[NAME$6].Constructor = Tooltip; + $__default['default'].fn[NAME$6] = Tooltip._jQueryInterface; + $__default['default'].fn[NAME$6].Constructor = Tooltip; - $.fn[NAME$6].noConflict = function () { - $.fn[NAME$6] = JQUERY_NO_CONFLICT$6; + $__default['default'].fn[NAME$6].noConflict = function () { + $__default['default'].fn[NAME$6] = JQUERY_NO_CONFLICT$6; return Tooltip._jQueryInterface; }; @@ -6095,10 +6103,10 @@ */ var NAME$7 = 'popover'; - var VERSION$7 = '4.5.2'; + var VERSION$7 = '4.5.3'; var DATA_KEY$7 = 'bs.popover'; var EVENT_KEY$7 = "." + DATA_KEY$7; - var JQUERY_NO_CONFLICT$7 = $.fn[NAME$7]; + var JQUERY_NO_CONFLICT$7 = $__default['default'].fn[NAME$7]; var CLASS_PREFIX$1 = 'bs-popover'; var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g'); @@ -6150,16 +6158,16 @@ }; _proto.addAttachmentClass = function addAttachmentClass(attachment) { - $(this.getTipElement()).addClass(CLASS_PREFIX$1 + "-" + attachment); + $__default['default'](this.getTipElement()).addClass(CLASS_PREFIX$1 + "-" + attachment); }; _proto.getTipElement = function getTipElement() { - this.tip = this.tip || $(this.config.template)[0]; + this.tip = this.tip || $__default['default'](this.config.template)[0]; return this.tip; }; _proto.setContent = function setContent() { - var $tip = $(this.getTipElement()); // We use append for html objects to maintain js events + var $tip = $__default['default'](this.getTipElement()); // We use append for html objects to maintain js events this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle()); @@ -6179,7 +6187,7 @@ }; _proto._cleanTipClass = function _cleanTipClass() { - var $tip = $(this.getTipElement()); + var $tip = $__default['default'](this.getTipElement()); var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1); if (tabClass !== null && tabClass.length > 0) { @@ -6190,7 +6198,7 @@ Popover._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var data = $(this).data(DATA_KEY$7); + var data = $__default['default'](this).data(DATA_KEY$7); var _config = typeof config === 'object' ? config : null; @@ -6200,7 +6208,7 @@ if (!data) { data = new Popover(this, _config); - $(this).data(DATA_KEY$7, data); + $__default['default'](this).data(DATA_KEY$7, data); } if (typeof config === 'string') { @@ -6260,11 +6268,11 @@ */ - $.fn[NAME$7] = Popover._jQueryInterface; - $.fn[NAME$7].Constructor = Popover; + $__default['default'].fn[NAME$7] = Popover._jQueryInterface; + $__default['default'].fn[NAME$7].Constructor = Popover; - $.fn[NAME$7].noConflict = function () { - $.fn[NAME$7] = JQUERY_NO_CONFLICT$7; + $__default['default'].fn[NAME$7].noConflict = function () { + $__default['default'].fn[NAME$7] = JQUERY_NO_CONFLICT$7; return Popover._jQueryInterface; }; @@ -6275,11 +6283,11 @@ */ var NAME$8 = 'scrollspy'; - var VERSION$8 = '4.5.2'; + var VERSION$8 = '4.5.3'; var DATA_KEY$8 = 'bs.scrollspy'; var EVENT_KEY$8 = "." + DATA_KEY$8; var DATA_API_KEY$6 = '.data-api'; - var JQUERY_NO_CONFLICT$8 = $.fn[NAME$8]; + var JQUERY_NO_CONFLICT$8 = $__default['default'].fn[NAME$8]; var Default$6 = { offset: 10, method: 'auto', @@ -6323,7 +6331,7 @@ this._targets = []; this._activeTarget = null; this._scrollHeight = 0; - $(this._scrollElement).on(EVENT_SCROLL, function (event) { + $__default['default'](this._scrollElement).on(EVENT_SCROLL, function (event) { return _this._process(event); }); this.refresh(); @@ -6358,7 +6366,7 @@ if (targetBCR.width || targetBCR.height) { // TODO (fat): remove sketch reliance on jQuery position/offset - return [$(target)[offsetMethod]().top + offsetBase, targetSelector]; + return [$__default['default'](target)[offsetMethod]().top + offsetBase, targetSelector]; } } @@ -6375,8 +6383,8 @@ }; _proto.dispose = function dispose() { - $.removeData(this._element, DATA_KEY$8); - $(this._scrollElement).off(EVENT_KEY$8); + $__default['default'].removeData(this._element, DATA_KEY$8); + $__default['default'](this._scrollElement).off(EVENT_KEY$8); this._element = null; this._scrollElement = null; this._config = null; @@ -6392,11 +6400,11 @@ config = _extends({}, Default$6, typeof config === 'object' && config ? config : {}); if (typeof config.target !== 'string' && Util.isElement(config.target)) { - var id = $(config.target).attr('id'); + var id = $__default['default'](config.target).attr('id'); if (!id) { id = Util.getUID(NAME$8); - $(config.target).attr('id', id); + $__default['default'](config.target).attr('id', id); } config.target = "#" + id; @@ -6465,7 +6473,7 @@ return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]"; }); - var $link = $([].slice.call(document.querySelectorAll(queries.join(',')))); + var $link = $__default['default']([].slice.call(document.querySelectorAll(queries.join(',')))); if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) { $link.closest(SELECTOR_DROPDOWN).find(SELECTOR_DROPDOWN_TOGGLE).addClass(CLASS_NAME_ACTIVE$2); @@ -6480,7 +6488,7 @@ $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_ITEMS).children(SELECTOR_NAV_LINKS).addClass(CLASS_NAME_ACTIVE$2); } - $(this._scrollElement).trigger(EVENT_ACTIVATE, { + $__default['default'](this._scrollElement).trigger(EVENT_ACTIVATE, { relatedTarget: target }); }; @@ -6496,13 +6504,13 @@ ScrollSpy._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var data = $(this).data(DATA_KEY$8); + var data = $__default['default'](this).data(DATA_KEY$8); var _config = typeof config === 'object' && config; if (!data) { data = new ScrollSpy(this, _config); - $(this).data(DATA_KEY$8, data); + $__default['default'](this).data(DATA_KEY$8, data); } if (typeof config === 'string') { @@ -6536,12 +6544,12 @@ */ - $(window).on(EVENT_LOAD_DATA_API$2, function () { + $__default['default'](window).on(EVENT_LOAD_DATA_API$2, function () { var scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY)); var scrollSpysLength = scrollSpys.length; for (var i = scrollSpysLength; i--;) { - var $spy = $(scrollSpys[i]); + var $spy = $__default['default'](scrollSpys[i]); ScrollSpy._jQueryInterface.call($spy, $spy.data()); } @@ -6552,11 +6560,11 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME$8] = ScrollSpy._jQueryInterface; - $.fn[NAME$8].Constructor = ScrollSpy; + $__default['default'].fn[NAME$8] = ScrollSpy._jQueryInterface; + $__default['default'].fn[NAME$8].Constructor = ScrollSpy; - $.fn[NAME$8].noConflict = function () { - $.fn[NAME$8] = JQUERY_NO_CONFLICT$8; + $__default['default'].fn[NAME$8].noConflict = function () { + $__default['default'].fn[NAME$8] = JQUERY_NO_CONFLICT$8; return ScrollSpy._jQueryInterface; }; @@ -6567,11 +6575,11 @@ */ var NAME$9 = 'tab'; - var VERSION$9 = '4.5.2'; + var VERSION$9 = '4.5.3'; var DATA_KEY$9 = 'bs.tab'; var EVENT_KEY$9 = "." + DATA_KEY$9; var DATA_API_KEY$7 = '.data-api'; - var JQUERY_NO_CONFLICT$9 = $.fn[NAME$9]; + var JQUERY_NO_CONFLICT$9 = $__default['default'].fn[NAME$9]; var EVENT_HIDE$3 = "hide" + EVENT_KEY$9; var EVENT_HIDDEN$3 = "hidden" + EVENT_KEY$9; var EVENT_SHOW$3 = "show" + EVENT_KEY$9; @@ -6607,33 +6615,33 @@ _proto.show = function show() { var _this = this; - if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(CLASS_NAME_ACTIVE$3) || $(this._element).hasClass(CLASS_NAME_DISABLED$1)) { + if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $__default['default'](this._element).hasClass(CLASS_NAME_ACTIVE$3) || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED$1)) { return; } var target; var previous; - var listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP$1)[0]; + var listElement = $__default['default'](this._element).closest(SELECTOR_NAV_LIST_GROUP$1)[0]; var selector = Util.getSelectorFromElement(this._element); if (listElement) { var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE$2; - previous = $.makeArray($(listElement).find(itemSelector)); + previous = $__default['default'].makeArray($__default['default'](listElement).find(itemSelector)); previous = previous[previous.length - 1]; } - var hideEvent = $.Event(EVENT_HIDE$3, { + var hideEvent = $__default['default'].Event(EVENT_HIDE$3, { relatedTarget: this._element }); - var showEvent = $.Event(EVENT_SHOW$3, { + var showEvent = $__default['default'].Event(EVENT_SHOW$3, { relatedTarget: previous }); if (previous) { - $(previous).trigger(hideEvent); + $__default['default'](previous).trigger(hideEvent); } - $(this._element).trigger(showEvent); + $__default['default'](this._element).trigger(showEvent); if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) { return; @@ -6646,14 +6654,14 @@ this._activate(this._element, listElement); var complete = function complete() { - var hiddenEvent = $.Event(EVENT_HIDDEN$3, { + var hiddenEvent = $__default['default'].Event(EVENT_HIDDEN$3, { relatedTarget: _this._element }); - var shownEvent = $.Event(EVENT_SHOWN$3, { + var shownEvent = $__default['default'].Event(EVENT_SHOWN$3, { relatedTarget: previous }); - $(previous).trigger(hiddenEvent); - $(_this._element).trigger(shownEvent); + $__default['default'](previous).trigger(hiddenEvent); + $__default['default'](_this._element).trigger(shownEvent); }; if (target) { @@ -6664,7 +6672,7 @@ }; _proto.dispose = function dispose() { - $.removeData(this._element, DATA_KEY$9); + $__default['default'].removeData(this._element, DATA_KEY$9); this._element = null; } // Private ; @@ -6672,9 +6680,9 @@ _proto._activate = function _activate(element, container, callback) { var _this2 = this; - var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $(container).find(SELECTOR_ACTIVE_UL) : $(container).children(SELECTOR_ACTIVE$2); + var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $__default['default'](container).find(SELECTOR_ACTIVE_UL) : $__default['default'](container).children(SELECTOR_ACTIVE$2); var active = activeElements[0]; - var isTransitioning = callback && active && $(active).hasClass(CLASS_NAME_FADE$4); + var isTransitioning = callback && active && $__default['default'](active).hasClass(CLASS_NAME_FADE$4); var complete = function complete() { return _this2._transitionComplete(element, active, callback); @@ -6682,7 +6690,7 @@ if (active && isTransitioning) { var transitionDuration = Util.getTransitionDurationFromElement(active); - $(active).removeClass(CLASS_NAME_SHOW$6).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + $__default['default'](active).removeClass(CLASS_NAME_SHOW$6).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); } else { complete(); } @@ -6690,11 +6698,11 @@ _proto._transitionComplete = function _transitionComplete(element, active, callback) { if (active) { - $(active).removeClass(CLASS_NAME_ACTIVE$3); - var dropdownChild = $(active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0]; + $__default['default'](active).removeClass(CLASS_NAME_ACTIVE$3); + var dropdownChild = $__default['default'](active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0]; if (dropdownChild) { - $(dropdownChild).removeClass(CLASS_NAME_ACTIVE$3); + $__default['default'](dropdownChild).removeClass(CLASS_NAME_ACTIVE$3); } if (active.getAttribute('role') === 'tab') { @@ -6702,7 +6710,7 @@ } } - $(element).addClass(CLASS_NAME_ACTIVE$3); + $__default['default'](element).addClass(CLASS_NAME_ACTIVE$3); if (element.getAttribute('role') === 'tab') { element.setAttribute('aria-selected', true); @@ -6714,12 +6722,12 @@ element.classList.add(CLASS_NAME_SHOW$6); } - if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) { - var dropdownElement = $(element).closest(SELECTOR_DROPDOWN$1)[0]; + if (element.parentNode && $__default['default'](element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) { + var dropdownElement = $__default['default'](element).closest(SELECTOR_DROPDOWN$1)[0]; if (dropdownElement) { var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE$1)); - $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE$3); + $__default['default'](dropdownToggleList).addClass(CLASS_NAME_ACTIVE$3); } element.setAttribute('aria-expanded', true); @@ -6733,7 +6741,7 @@ Tab._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var $this = $(this); + var $this = $__default['default'](this); var data = $this.data(DATA_KEY$9); if (!data) { @@ -6767,10 +6775,10 @@ */ - $(document).on(EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$4, function (event) { + $__default['default'](document).on(EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$4, function (event) { event.preventDefault(); - Tab._jQueryInterface.call($(this), 'show'); + Tab._jQueryInterface.call($__default['default'](this), 'show'); }); /** * ------------------------------------------------------------------------ @@ -6778,11 +6786,11 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME$9] = Tab._jQueryInterface; - $.fn[NAME$9].Constructor = Tab; + $__default['default'].fn[NAME$9] = Tab._jQueryInterface; + $__default['default'].fn[NAME$9].Constructor = Tab; - $.fn[NAME$9].noConflict = function () { - $.fn[NAME$9] = JQUERY_NO_CONFLICT$9; + $__default['default'].fn[NAME$9].noConflict = function () { + $__default['default'].fn[NAME$9] = JQUERY_NO_CONFLICT$9; return Tab._jQueryInterface; }; @@ -6793,10 +6801,10 @@ */ var NAME$a = 'toast'; - var VERSION$a = '4.5.2'; + var VERSION$a = '4.5.3'; var DATA_KEY$a = 'bs.toast'; var EVENT_KEY$a = "." + DATA_KEY$a; - var JQUERY_NO_CONFLICT$a = $.fn[NAME$a]; + var JQUERY_NO_CONFLICT$a = $__default['default'].fn[NAME$a]; var EVENT_CLICK_DISMISS$1 = "click.dismiss" + EVENT_KEY$a; var EVENT_HIDE$4 = "hide" + EVENT_KEY$a; var EVENT_HIDDEN$4 = "hidden" + EVENT_KEY$a; @@ -6839,8 +6847,8 @@ _proto.show = function show() { var _this = this; - var showEvent = $.Event(EVENT_SHOW$4); - $(this._element).trigger(showEvent); + var showEvent = $__default['default'].Event(EVENT_SHOW$4); + $__default['default'](this._element).trigger(showEvent); if (showEvent.isDefaultPrevented()) { return; @@ -6857,7 +6865,7 @@ _this._element.classList.add(CLASS_NAME_SHOW$7); - $(_this._element).trigger(EVENT_SHOWN$4); + $__default['default'](_this._element).trigger(EVENT_SHOWN$4); if (_this._config.autohide) { _this._timeout = setTimeout(function () { @@ -6874,7 +6882,7 @@ if (this._config.animation) { var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); } else { complete(); } @@ -6885,8 +6893,8 @@ return; } - var hideEvent = $.Event(EVENT_HIDE$4); - $(this._element).trigger(hideEvent); + var hideEvent = $__default['default'].Event(EVENT_HIDE$4); + $__default['default'](this._element).trigger(hideEvent); if (hideEvent.isDefaultPrevented()) { return; @@ -6902,15 +6910,15 @@ this._element.classList.remove(CLASS_NAME_SHOW$7); } - $(this._element).off(EVENT_CLICK_DISMISS$1); - $.removeData(this._element, DATA_KEY$a); + $__default['default'](this._element).off(EVENT_CLICK_DISMISS$1); + $__default['default'].removeData(this._element, DATA_KEY$a); this._element = null; this._config = null; } // Private ; _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default$7, $(this._element).data(), typeof config === 'object' && config ? config : {}); + config = _extends({}, Default$7, $__default['default'](this._element).data(), typeof config === 'object' && config ? config : {}); Util.typeCheckConfig(NAME$a, config, this.constructor.DefaultType); return config; }; @@ -6918,7 +6926,7 @@ _proto._setListeners = function _setListeners() { var _this2 = this; - $(this._element).on(EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function () { + $__default['default'](this._element).on(EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function () { return _this2.hide(); }); }; @@ -6929,14 +6937,14 @@ var complete = function complete() { _this3._element.classList.add(CLASS_NAME_HIDE); - $(_this3._element).trigger(EVENT_HIDDEN$4); + $__default['default'](_this3._element).trigger(EVENT_HIDDEN$4); }; this._element.classList.remove(CLASS_NAME_SHOW$7); if (this._config.animation) { var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); } else { complete(); } @@ -6950,7 +6958,7 @@ Toast._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var $element = $(this); + var $element = $__default['default'](this); var data = $element.data(DATA_KEY$a); var _config = typeof config === 'object' && config; @@ -6996,11 +7004,11 @@ */ - $.fn[NAME$a] = Toast._jQueryInterface; - $.fn[NAME$a].Constructor = Toast; + $__default['default'].fn[NAME$a] = Toast._jQueryInterface; + $__default['default'].fn[NAME$a].Constructor = Toast; - $.fn[NAME$a].noConflict = function () { - $.fn[NAME$a] = JQUERY_NO_CONFLICT$a; + $__default['default'].fn[NAME$a].noConflict = function () { + $__default['default'].fn[NAME$a] = JQUERY_NO_CONFLICT$a; return Toast._jQueryInterface; }; diff --git a/npm_assets/node_modules/bootstrap/dist/js/bootstrap.bundle.js.map b/npm_assets/node_modules/bootstrap/dist/js/bootstrap.bundle.js.map index 3c568d5a4e..0ffc67bdb2 100644 --- a/npm_assets/node_modules/bootstrap/dist/js/bootstrap.bundle.js.map +++ b/npm_assets/node_modules/bootstrap/dist/js/bootstrap.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"bootstrap.bundle.js","sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tools/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(CLASS_NAME_SHOW)\n\n if (!$(element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(EVENT_CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n EVENT_CLICK_DATA_API,\n SELECTOR_DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]'\nconst SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n SELECTOR_DATA_TOGGLES\n )[0]\n\n if (rootElement) {\n const input = this._element.querySelector(SELECTOR_INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(SELECTOR_ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n }\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => {\n let button = event.target\n const initialButton = button\n\n if (!$(button).hasClass(CLASS_NAME_BUTTON)) {\n button = $(button).closest(SELECTOR_BUTTON)[0]\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault() // work around Firefox bug #1540995\n } else {\n const inputBtn = button.querySelector(SELECTOR_INPUT)\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault() // work around Firefox bug #1540995\n return\n }\n\n if (initialButton.tagName !== 'LABEL' || inputBtn && inputBtn.type !== 'checkbox') {\n Button._jQueryInterface.call($(button), 'toggle')\n }\n }\n })\n .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(SELECTOR_BUTTON)[0]\n $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n // ensure correct active class is set to match the controls' actual values/states\n\n // find all checkboxes/readio buttons inside data-toggle groups\n let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n const input = button.querySelector(SELECTOR_INPUT)\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // find all button toggles\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n if (button.getAttribute('aria-pressed') === 'true') {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true,\n touch : true\n}\n\nconst DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean',\n touch : 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH : 'touch',\n PEN : 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? DIRECTION_NEXT\n : DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element).on(EVENT_KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(EVENT_MOUSEENTER, (event) => this.pause(event))\n .on(EVENT_MOUSELEAVE, (event) => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = (event) => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n .on(EVENT_DRAG_START, (e) => e.preventDefault())\n\n if (this._pointerEvent) {\n $(this._element).on(EVENT_POINTERDOWN, (event) => start(event))\n $(this._element).on(EVENT_POINTERUP, (event) => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n $(this._element).on(EVENT_TOUCHSTART, (event) => start(event))\n $(this._element).on(EVENT_TOUCHMOVE, (event) => move(event))\n $(this._element).on(EVENT_TOUCHEND, (event) => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode\n ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM))\n : []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM))\n const slideEvent = $.Event(EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(CLASS_NAME_ACTIVE)\n\n $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n $(nextElement).addClass(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle : true,\n parent : ''\n}\n\nconst DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst DIMENSION_WIDTH = 'width'\nconst DIMENSION_HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter((foundElem) => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))\n .filter((elem) => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(EVENT_SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSE)\n .addClass(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = $.Event(EVENT_HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(CLASS_NAME_COLLAPSING)\n .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n $(trigger).addClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(CLASS_NAME_COLLAPSE)\n .trigger(EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(DIMENSION_WIDTH)\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n const children = [].slice.call(parent.querySelectorAll(selector))\n\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic',\n popperConfig : null\n}\n\nconst DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string',\n popperConfig : '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show(true)\n }\n\n show(usePopper = false) {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(EVENT_SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(CLASS_NAME_POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(EVENT_CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU)\n }\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT)\n ? PLACEMENT_TOPEND\n : PLACEMENT_TOP\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n $(dropdownMenu).removeClass(CLASS_NAME_SHOW)\n $(parent)\n .removeClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(CLASS_NAME_SHOW)\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))\n .filter((item) => $(item).is(':visible'))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)\n .on(`${EVENT_CLICK_DATA_API} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n}\n\nconst DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(SELECTOR_DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {\n $(this._element).one(EVENT_MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(EVENT_FOCUSIN)\n\n $(this._element).removeClass(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach((htmlElement) => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n $(document).off(EVENT_FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.defaultPrevented) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n $(this._element).off(Util.TRANSITION_END)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n .emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\n }\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, (event) => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(EVENT_RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(CLASS_NAME_FADE)\n ? CLASS_NAME_FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(EVENT_CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(EVENT_SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(EVENT_HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nfunction allowedAttribute(attr, allowedAttributeList) {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].slice.call(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].slice.call(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach((attr) => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string|function)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)',\n sanitize : 'boolean',\n sanitizeFn : '(null|function)',\n whiteList : 'object',\n popperConfig : '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n}\n\nconst Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent',\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist,\n popperConfig : null\n}\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_ARROW = '.arrow'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const shadowRoot = Util.findShadowRoot(this.element)\n const isInTheDom = $.contains(\n shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n $(tip).addClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n $element.html(content)\n } else {\n $element.text(content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: SELECTOR_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (Util.isElement(this.config.container)) {\n return $(this.config.container)\n }\n\n return $(document).find(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(eventIn, this.config.selector, (event) => this._enter(event))\n .on(eventOut, this.config.selector, (event) => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = $(this.element).data()\n\n Object.keys(dataAttributes)\n .forEach((dataAttr) => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(SELECTOR_CONTENT), content)\n\n $tip.removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset : 10,\n method : 'auto',\n target : ''\n}\n\nconst DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(EVENT_SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? METHOD_OFFSET : METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map((selector) => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN)\n .find(SELECTOR_DROPDOWN_TOGGLE)\n .addClass(CLASS_NAME_ACTIVE)\n $link.addClass(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .addClass(CLASS_NAME_ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(SELECTOR_NAV_ITEMS)\n .children(SELECTOR_NAV_LINKS)\n .addClass(CLASS_NAME_ACTIVE)\n }\n\n $(this._scrollElement).trigger(EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n [].slice.call(document.querySelectorAll(this._selector))\n .filter((node) => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach((node) => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY))\n const scrollSpysLength = scrollSpys.length\n\n for (let i = scrollSpysLength; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = ScrollSpy._jQueryInterface\n$.fn[NAME].Constructor = ScrollSpy\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = '> li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(CLASS_NAME_ACTIVE) ||\n $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(EVENT_HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL')\n ? $(container).find(SELECTOR_ACTIVE_UL)\n : $(container).children(SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && $(active).hasClass(CLASS_NAME_FADE))\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .removeClass(CLASS_NAME_SHOW)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(CLASS_NAME_ACTIVE)\n\n const dropdownChild = $(active.parentNode).find(\n SELECTOR_DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(SELECTOR_DROPDOWN)[0]\n\n if (dropdownElement) {\n const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE))\n\n $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tab._jQueryInterface\n$.fn[NAME].Constructor = Tab\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation : 'boolean',\n autohide : 'boolean',\n delay : 'number'\n}\n\nconst Default = {\n animation : true,\n autohide : true,\n delay : 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = $.Event(EVENT_SHOW)\n\n $(this._element).trigger(showEvent)\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n $(this._element).trigger(EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n Util.reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._close()\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n\n $.removeData(this._element, DATA_KEY)\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...$(this._element).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE)\n $(this._element).trigger(EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Toast._jQueryInterface\n$.fn[NAME].Constructor = Toast\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n}\n\nexport default Toast\n"],"names":["TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","bindType","delegateType","handle","event","$","target","is","handleObj","handler","apply","arguments","undefined","transitionEndEmulator","duration","called","one","Util","setTimeout","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","special","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","err","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","jquery","minMajor","ltMajor","minMinor","minPatch","maxMajor","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASS_NAME_ALERT","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","Event","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","CLASS_NAME_ACTIVE","CLASS_NAME_BUTTON","CLASS_NAME_FOCUS","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLES","SELECTOR_DATA_TOGGLE","SELECTOR_DATA_TOGGLES_BUTTONS","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","EVENT_FOCUS_BLUR_DATA_API","EVENT_LOAD_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","classList","contains","activeElement","focus","hasAttribute","setAttribute","toggleClass","button","initialButton","inputBtn","tagName","window","buttons","slice","querySelectorAll","i","len","length","add","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","CLASS_NAME_CAROUSEL","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","originalEvent","pointerType","clientX","touches","move","end","clearTimeout","e","which","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slidEvent","nextElementInterval","parseInt","defaultInterval","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","DIMENSION_WIDTH","DIMENSION_HEIGHT","SELECTOR_ACTIVES","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","complete","capitalizedDimension","scrollSize","getBoundingClientRect","triggerArrayLength","$elem","isTransitioning","hasWidth","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","selectors","$target","_extends","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_POSITION_STATIC","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","offset","flip","boundary","reference","display","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","Popper","referenceElement","_getPopperConfig","body","noop","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","item","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","forEach","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","defaultPrevented","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","modalBody","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","rect","round","left","right","innerWidth","_getScrollbarWidth","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","uriAttrs","ARIA_ATTRIBUTE_PATTERN","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","keys","el","elName","attributeList","attributes","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","container","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HOVER_STATE_SHOW","HOVER_STATE_OUT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","SELECTOR_TOOLTIP_INNER","SELECTOR_ARROW","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","empty","append","text","defaultBsConfig","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","find","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","key","$tip","tabClass","join","popperData","instance","popper","initConfigAnimation","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_ITEMS","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","parents","node","scrollSpys","scrollSpysLength","$spy","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","previous","listElement","itemSelector","makeArray","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_clearTimeout","_close"],"mappings":"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E;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,MAAM,EAAE;EACV;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,MAAM;EACd;EACA;EACA;EACA,IAAI,MAAM,EAAE,CAAC;EACb,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE;EACnB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,eAAe;EACvB;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;EAChD;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,cAAc;EACrC,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb;EACA,IAAI,OAAO,EAAE,WAAW;EACxB,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,MAAM;EACpB;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,UAAU;EACjC;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,cAAc,EAAE,KAAK;EACzB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,uBAAuB,EAAE,KAAK;EAClC,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,KAAK;EAClB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,IAAI;EACzB;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,QAAQ;EACf;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,OAAO;EACd,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,UAAU,EAAE;EACd;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,UAAU;EAClB;EACA,IAAI,MAAM,EAAE,gBAAgB;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,SAAS;EAC9B,GAAG;EACH,CAAC,CAAC;AACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,GAAG;EACf;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,QAAQ;AACrB;EACA;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,KAAK;AACtB;EACA;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,IAAI;AACrB;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE,KAAK;AACxB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;AAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;AAClC;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,SAAS;EACtB,CAAC,CAAC;AACF;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA,IAAI,MAAM,GAAG,YAAY;EACzB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,SAAS,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE;EACrC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC;AACrB;EACA,IAAI,IAAI,OAAO,GAAG,SAAS,CAA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"} \ No newline at end of file +{"version":3,"file":"bootstrap.bundle.js","sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tools/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n\n return undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (_) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value) ?\n 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(CLASS_NAME_SHOW)\n\n if (!$(element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, event => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(EVENT_CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n EVENT_CLICK_DATA_API,\n SELECTOR_DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]'\nconst SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n this.shouldAvoidTriggerChange = false\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(SELECTOR_DATA_TOGGLES)[0]\n\n if (rootElement) {\n const input = this._element.querySelector(SELECTOR_INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(SELECTOR_ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n if (!this.shouldAvoidTriggerChange) {\n $(input).trigger('change')\n }\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config, avoidTriggerChange) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $element.data(DATA_KEY, data)\n }\n\n data.shouldAvoidTriggerChange = avoidTriggerChange\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n let button = event.target\n const initialButton = button\n\n if (!$(button).hasClass(CLASS_NAME_BUTTON)) {\n button = $(button).closest(SELECTOR_BUTTON)[0]\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault() // work around Firefox bug #1540995\n } else {\n const inputBtn = button.querySelector(SELECTOR_INPUT)\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault() // work around Firefox bug #1540995\n return\n }\n\n if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n Button._jQueryInterface.call($(button), 'toggle', initialButton.tagName === 'INPUT')\n }\n }\n })\n .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = $(event.target).closest(SELECTOR_BUTTON)[0]\n $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n // ensure correct active class is set to match the controls' actual values/states\n\n // find all checkboxes/readio buttons inside data-toggle groups\n let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n const input = button.querySelector(SELECTOR_INPUT)\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // find all button toggles\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n if (button.getAttribute('aria-pressed') === 'true') {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n const $element = $(this._element)\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($element.is(':visible') && $element.css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element).on(EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(EVENT_MOUSEENTER, event => this.pause(event))\n .on(EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n .on(EVENT_DRAG_START, e => e.preventDefault())\n\n if (this._pointerEvent) {\n $(this._element).on(EVENT_POINTERDOWN, event => start(event))\n $(this._element).on(EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n $(this._element).on(EVENT_TOUCHSTART, event => start(event))\n $(this._element).on(EVENT_TOUCHMOVE, event => move(event))\n $(this._element).on(EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) :\n []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM))\n const slideEvent = $.Event(EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(CLASS_NAME_ACTIVE)\n\n $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n $(nextElement).addClass(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst DIMENSION_WIDTH = 'width'\nconst DIMENSION_HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(EVENT_SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSE)\n .addClass(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = $.Event(EVENT_HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(CLASS_NAME_COLLAPSING)\n .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n $(trigger).addClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(CLASS_NAME_COLLAPSE)\n .trigger(EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(DIMENSION_WIDTH)\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n const children = [].slice.call(parent.querySelectorAll(selector))\n\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$element.data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show(true)\n }\n\n show(usePopper = false) {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(EVENT_SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(EVENT_CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) ?\n PLACEMENT_TOPEND :\n PLACEMENT_TOP\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this._config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n $(dropdownMenu).removeClass(CLASS_NAME_SHOW)\n $(parent)\n .removeClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(CLASS_NAME_SHOW)\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (!isActive || (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))\n .filter(item => $(item).is(':visible'))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)\n .on(`${EVENT_CLICK_DATA_API} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(SELECTOR_DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n event => this.hide(event)\n )\n\n $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {\n $(this._element).one(EVENT_MOUSEUP_DISMISS, event => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(EVENT_FOCUSIN)\n\n $(this._element).removeClass(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, event => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n $(document).off(EVENT_FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.isDefaultPrevented()) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n $(this._element).off(Util.TRANSITION_END)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n .emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\n }\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(EVENT_RESIZE, event => this.handleUpdate(event))\n } else {\n $(window).off(EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY) ?\n 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(EVENT_SHOW, showEvent => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(EVENT_HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nfunction allowedAttribute(attr, allowedAttributeList) {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].slice.call(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].slice.call(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object',\n popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist,\n popperConfig: null\n}\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_ARROW = '.arrow'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const shadowRoot = Util.findShadowRoot(this.element)\n const isInTheDom = $.contains(\n shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n $(tip).addClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n $element.html(content)\n } else {\n $element.text(content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: SELECTOR_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this.config.offset(data.offsets, this.element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (Util.isElement(this.config.container)) {\n return $(this.config.container)\n }\n\n return $(document).find(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(eventIn, this.config.selector, event => this._enter(event))\n .on(eventOut, this.config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = $(this.element).data()\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent($tip.find(SELECTOR_CONTENT), content)\n\n $tip.removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(EVENT_SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET : METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod : this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN)\n .find(SELECTOR_DROPDOWN_TOGGLE)\n .addClass(CLASS_NAME_ACTIVE)\n $link.addClass(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .addClass(CLASS_NAME_ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(SELECTOR_NAV_ITEMS)\n .children(SELECTOR_NAV_LINKS)\n .addClass(CLASS_NAME_ACTIVE)\n }\n\n $(this._scrollElement).trigger(EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n [].slice.call(document.querySelectorAll(this._selector))\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY))\n const scrollSpysLength = scrollSpys.length\n\n for (let i = scrollSpysLength; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = ScrollSpy._jQueryInterface\n$.fn[NAME].Constructor = ScrollSpy\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = '> li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(CLASS_NAME_ACTIVE) ||\n $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(EVENT_HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n $(container).find(SELECTOR_ACTIVE_UL) :\n $(container).children(SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && $(active).hasClass(CLASS_NAME_FADE))\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .removeClass(CLASS_NAME_SHOW)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(CLASS_NAME_ACTIVE)\n\n const dropdownChild = $(active.parentNode).find(\n SELECTOR_DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(SELECTOR_DROPDOWN)[0]\n\n if (dropdownElement) {\n const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE))\n\n $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tab._jQueryInterface\n$.fn[NAME].Constructor = Tab\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = $.Event(EVENT_SHOW)\n\n $(this._element).trigger(showEvent)\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n $(this._element).trigger(EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n Util.reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._close()\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n\n $.removeData(this._element, DATA_KEY)\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...$(this._element).data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE)\n $(this._element).trigger(EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Toast._jQueryInterface\n$.fn[NAME].Constructor = Toast\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n}\n\nexport default Toast\n"],"names":["TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","bindType","delegateType","handle","event","$","target","is","handleObj","handler","apply","arguments","undefined","transitionEndEmulator","duration","called","one","Util","setTimeout","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","special","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","_","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","jquery","minMajor","ltMajor","minMinor","minPatch","maxMajor","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASS_NAME_ALERT","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","Event","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","CLASS_NAME_ACTIVE","CLASS_NAME_BUTTON","CLASS_NAME_FOCUS","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLES","SELECTOR_DATA_TOGGLE","SELECTOR_DATA_TOGGLES_BUTTONS","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","EVENT_FOCUS_BLUR_DATA_API","EVENT_LOAD_DATA_API","Button","shouldAvoidTriggerChange","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","classList","contains","activeElement","focus","hasAttribute","setAttribute","toggleClass","avoidTriggerChange","button","initialButton","inputBtn","tagName","window","buttons","slice","querySelectorAll","i","len","length","add","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","CLASS_NAME_CAROUSEL","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","originalEvent","pointerType","clientX","touches","move","end","clearTimeout","e","which","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slidEvent","nextElementInterval","parseInt","defaultInterval","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","DIMENSION_WIDTH","DIMENSION_HEIGHT","SELECTOR_ACTIVES","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","complete","capitalizedDimension","scrollSize","getBoundingClientRect","triggerArrayLength","$elem","isTransitioning","hasWidth","_getTargetFromElement","triggerArray","isOpen","currentTarget","$trigger","selectors","$target","_extends","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_POSITION_STATIC","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","offset","flip","boundary","reference","display","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","Popper","referenceElement","_getPopperConfig","body","noop","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","item","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","forEach","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","modalBody","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","rect","round","left","right","innerWidth","_getScrollbarWidth","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","uriAttrs","ARIA_ATTRIBUTE_PATTERN","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","keys","el","elName","attributeList","attributes","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","container","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HOVER_STATE_SHOW","HOVER_STATE_OUT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","SELECTOR_TOOLTIP_INNER","SELECTOR_ARROW","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","empty","append","text","defaultBsConfig","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","find","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","key","$tip","tabClass","join","popperData","instance","popper","initConfigAnimation","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_ITEMS","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","parents","node","scrollSpys","scrollSpysLength","$spy","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","previous","listElement","itemSelector","makeArray","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","$this","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_clearTimeout","_close"],"mappings":"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AAC9C;EACA,EAAE,OAAO,IAAI,CAAC;EACd,CAAC;AACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,SAAS,GAAG;EAChB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,MAAM,EAAE;EACV;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,MAAM;EACd;EACA;EACA;EACA,IAAI,MAAM,EAAE,CAAC;EACb,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE;EACnB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,eAAe;EACvB;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;EAChD;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,cAAc;EACrC,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb;EACA,IAAI,OAAO,EAAE,WAAW;EACxB,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,MAAM;EACpB;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,UAAU;EACjC;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,cAAc,EAAE,KAAK;EACzB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,uBAAuB,EAAE,KAAK;EAClC,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,KAAK;EAClB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,IAAI;EACzB;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,QAAQ;EACf;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,OAAO;EACd,GAAG;AACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,UAAU,EAAE;EACd;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,UAAU;EAClB;EACA,IAAI,MAAM,EAAE,gBAAgB;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,SAAS;EAC9B,GAAG;EACH,CAAC,CAAC;AACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,GAAG;EACf;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,QAAQ;AACrB;EACA;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,KAAK;AACtB;EACA;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,IAAI;AACrB;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE,KAAK;AACxB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;AAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;AAClC;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,SAAS;EACtB,CAAC,CAAC;AACF;EACA;EACA;EACA;E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"} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js b/npm_assets/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js index 24ab90dc1c..ef603dadf5 100644 --- a/npm_assets/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js +++ b/npm_assets/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js @@ -1,7 +1,7 @@ /*! - * Bootstrap v4.5.2 (https://getbootstrap.com/) + * Bootstrap v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery")):"function"==typeof define&&define.amd?define(["exports","jquery"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap={},t.jQuery)}(this,(function(t,e){"use strict";function n(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function i(t,e,i){return e&&n(t.prototype,e),i&&n(t,i),t}function o(){return(o=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t}).apply(this,arguments)}e=e&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e;function r(t){var n=this,i=!1;return e(this).one(s.TRANSITION_END,(function(){i=!0})),setTimeout((function(){i||s.triggerTransitionEnd(n)}),t),this}var s={TRANSITION_END:"bsTransitionEnd",getUID:function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var n=e(t).css("transition-duration"),i=e(t).css("transition-delay"),o=parseFloat(n),r=parseFloat(i);return o||r?(n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){e(t).trigger("transitionend")},supportsTransitionEnd:function(){return Boolean("transitionend")},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var o=n[i],r=e[i],a=r&&s.isElement(r)?"element":null===(l=r)||"undefined"==typeof l?""+l:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(a))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+o+'".')}var l},findShadowRoot:function(t){if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){var e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?s.findShadowRoot(t.parentNode):null},jQueryDetection:function(){if("undefined"==typeof e)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||t[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};s.jQueryDetection(),e.fn.emulateTransitionEnd=r,e.event.special[s.TRANSITION_END]={bindType:"transitionend",delegateType:"transitionend",handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var a="alert",l=e.fn[a],c=function(){function t(t){this._element=t}var n=t.prototype;return n.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},n.dispose=function(){e.removeData(this._element,"bs.alert"),this._element=null},n._getRootElement=function(t){var n=s.getSelectorFromElement(t),i=!1;return n&&(i=document.querySelector(n)),i||(i=e(t).closest(".alert")[0]),i},n._triggerCloseEvent=function(t){var n=e.Event("close.bs.alert");return e(t).trigger(n),n},n._removeElement=function(t){var n=this;if(e(t).removeClass("show"),e(t).hasClass("fade")){var i=s.getTransitionDurationFromElement(t);e(t).one(s.TRANSITION_END,(function(e){return n._destroyElement(t,e)})).emulateTransitionEnd(i)}else this._destroyElement(t)},n._destroyElement=function(t){e(t).detach().trigger("closed.bs.alert").remove()},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.alert");o||(o=new t(this),i.data("bs.alert",o)),"close"===n&&o[n](this)}))},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},i(t,null,[{key:"VERSION",get:function(){return"4.5.2"}}]),t}();e(document).on("click.bs.alert.data-api",'[data-dismiss="alert"]',c._handleDismiss(new c)),e.fn[a]=c._jQueryInterface,e.fn[a].Constructor=c,e.fn[a].noConflict=function(){return e.fn[a]=l,c._jQueryInterface};var h=e.fn.button,u=function(){function t(t){this._element=t}var n=t.prototype;return n.toggle=function(){var t=!0,n=!0,i=e(this._element).closest('[data-toggle="buttons"]')[0];if(i){var o=this._element.querySelector('input:not([type="hidden"])');if(o){if("radio"===o.type)if(o.checked&&this._element.classList.contains("active"))t=!1;else{var r=i.querySelector(".active");r&&e(r).removeClass("active")}t&&("checkbox"!==o.type&&"radio"!==o.type||(o.checked=!this._element.classList.contains("active")),e(o).trigger("change")),o.focus(),n=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(n&&this._element.setAttribute("aria-pressed",!this._element.classList.contains("active")),t&&e(this._element).toggleClass("active"))},n.dispose=function(){e.removeData(this._element,"bs.button"),this._element=null},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.button");i||(i=new t(this),e(this).data("bs.button",i)),"toggle"===n&&i[n]()}))},i(t,null,[{key:"VERSION",get:function(){return"4.5.2"}}]),t}();e(document).on("click.bs.button.data-api",'[data-toggle^="button"]',(function(t){var n=t.target,i=n;if(e(n).hasClass("btn")||(n=e(n).closest(".btn")[0]),!n||n.hasAttribute("disabled")||n.classList.contains("disabled"))t.preventDefault();else{var o=n.querySelector('input:not([type="hidden"])');if(o&&(o.hasAttribute("disabled")||o.classList.contains("disabled")))return void t.preventDefault();("LABEL"!==i.tagName||o&&"checkbox"!==o.type)&&u._jQueryInterface.call(e(n),"toggle")}})).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',(function(t){var n=e(t.target).closest(".btn")[0];e(n).toggleClass("focus",/^focus(in)?$/.test(t.type))})),e(window).on("load.bs.button.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')),e=0,n=t.length;e<n;e++){var i=t[e],o=i.querySelector('input:not([type="hidden"])');o.checked||o.hasAttribute("checked")?i.classList.add("active"):i.classList.remove("active")}for(var r=0,s=(t=[].slice.call(document.querySelectorAll('[data-toggle="button"]'))).length;r<s;r++){var a=t[r];"true"===a.getAttribute("aria-pressed")?a.classList.add("active"):a.classList.remove("active")}})),e.fn.button=u._jQueryInterface,e.fn.button.Constructor=u,e.fn.button.noConflict=function(){return e.fn.button=h,u._jQueryInterface};var f="carousel",d=".bs.carousel",p=e.fn[f],m={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},g={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},_={TOUCH:"touch",PEN:"pen"},v=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=this._element.querySelector(".carousel-indicators"),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var n=t.prototype;return n.next=function(){this._isSliding||this._slide("next")},n.nextWhenVisible=function(){!document.hidden&&e(this._element).is(":visible")&&"hidden"!==e(this._element).css("visibility")&&this.next()},n.prev=function(){this._isSliding||this._slide("prev")},n.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(s.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},n.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},n.to=function(t){var n=this;this._activeElement=this._element.querySelector(".active.carousel-item");var i=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)e(this._element).one("slid.bs.carousel",(function(){return n.to(t)}));else{if(i===t)return this.pause(),void this.cycle();var o=t>i?"next":"prev";this._slide(o,this._items[t])}},n.dispose=function(){e(this._element).off(d),e.removeData(this._element,"bs.carousel"),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},n._getConfig=function(t){return t=o({},m,t),s.typeCheckConfig(f,t,g),t},n._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},n._addEventListeners=function(){var t=this;this._config.keyboard&&e(this._element).on("keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&e(this._element).on("mouseenter.bs.carousel",(function(e){return t.pause(e)})).on("mouseleave.bs.carousel",(function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},n._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var n=function(e){t._pointerEvent&&_[e.originalEvent.pointerType.toUpperCase()]?t.touchStartX=e.originalEvent.clientX:t._pointerEvent||(t.touchStartX=e.originalEvent.touches[0].clientX)},i=function(e){t._pointerEvent&&_[e.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=e.originalEvent.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};e(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel",(function(t){return t.preventDefault()})),this._pointerEvent?(e(this._element).on("pointerdown.bs.carousel",(function(t){return n(t)})),e(this._element).on("pointerup.bs.carousel",(function(t){return i(t)})),this._element.classList.add("pointer-event")):(e(this._element).on("touchstart.bs.carousel",(function(t){return n(t)})),e(this._element).on("touchmove.bs.carousel",(function(e){return function(e){e.originalEvent.touches&&e.originalEvent.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.originalEvent.touches[0].clientX-t.touchStartX}(e)})),e(this._element).on("touchend.bs.carousel",(function(t){return i(t)})))}},n._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},n._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(t)},n._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+("prev"===t?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},n._triggerSlideEvent=function(t,n){var i=this._getItemIndex(t),o=this._getItemIndex(this._element.querySelector(".active.carousel-item")),r=e.Event("slide.bs.carousel",{relatedTarget:t,direction:n,from:o,to:i});return e(this._element).trigger(r),r},n._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var n=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));e(n).removeClass("active");var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&e(i).addClass("active")}},n._slide=function(t,n){var i,o,r,a=this,l=this._element.querySelector(".active.carousel-item"),c=this._getItemIndex(l),h=n||l&&this._getItemByDirection(t,l),u=this._getItemIndex(h),f=Boolean(this._interval);if("next"===t?(i="carousel-item-left",o="carousel-item-next",r="left"):(i="carousel-item-right",o="carousel-item-prev",r="right"),h&&e(h).hasClass("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(h,r).isDefaultPrevented()&&l&&h){this._isSliding=!0,f&&this.pause(),this._setActiveIndicatorElement(h);var d=e.Event("slid.bs.carousel",{relatedTarget:h,direction:r,from:c,to:u});if(e(this._element).hasClass("slide")){e(h).addClass(o),s.reflow(h),e(l).addClass(i),e(h).addClass(i);var p=parseInt(h.getAttribute("data-interval"),10);p?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=p):this._config.interval=this._config.defaultInterval||this._config.interval;var m=s.getTransitionDurationFromElement(l);e(l).one(s.TRANSITION_END,(function(){e(h).removeClass(i+" "+o).addClass("active"),e(l).removeClass("active "+o+" "+i),a._isSliding=!1,setTimeout((function(){return e(a._element).trigger(d)}),0)})).emulateTransitionEnd(m)}else e(l).removeClass("active"),e(h).addClass("active"),this._isSliding=!1,e(this._element).trigger(d);f&&this.cycle()}},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.carousel"),r=o({},m,e(this).data());"object"==typeof n&&(r=o({},r,n));var s="string"==typeof n?n:r.slide;if(i||(i=new t(this,r),e(this).data("bs.carousel",i)),"number"==typeof n)i.to(n);else if("string"==typeof s){if("undefined"==typeof i[s])throw new TypeError('No method named "'+s+'"');i[s]()}else r.interval&&r.ride&&(i.pause(),i.cycle())}))},t._dataApiClickHandler=function(n){var i=s.getSelectorFromElement(this);if(i){var r=e(i)[0];if(r&&e(r).hasClass("carousel")){var a=o({},e(r).data(),e(this).data()),l=this.getAttribute("data-slide-to");l&&(a.interval=!1),t._jQueryInterface.call(e(r),a),l&&e(r).data("bs.carousel").to(l),n.preventDefault()}}},i(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return m}}]),t}();e(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",v._dataApiClickHandler),e(window).on("load.bs.carousel.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-ride="carousel"]')),n=0,i=t.length;n<i;n++){var o=e(t[n]);v._jQueryInterface.call(o,o.data())}})),e.fn[f]=v._jQueryInterface,e.fn[f].Constructor=v,e.fn[f].noConflict=function(){return e.fn[f]=p,v._jQueryInterface};var b="collapse",y=e.fn[b],w={toggle:!0,parent:""},E={toggle:"boolean",parent:"(string|element)"},T=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=[].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=[].slice.call(document.querySelectorAll('[data-toggle="collapse"]')),i=0,o=n.length;i<o;i++){var r=n[i],a=s.getSelectorFromElement(r),l=[].slice.call(document.querySelectorAll(a)).filter((function(e){return e===t}));null!==a&&l.length>0&&(this._selector=a,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var n=t.prototype;return n.toggle=function(){e(this._element).hasClass("show")?this.hide():this.show()},n.show=function(){var n,i,o=this;if(!this._isTransitioning&&!e(this._element).hasClass("show")&&(this._parent&&0===(n=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((function(t){return"string"==typeof o._config.parent?t.getAttribute("data-parent")===o._config.parent:t.classList.contains("collapse")}))).length&&(n=null),!(n&&(i=e(n).not(this._selector).data("bs.collapse"))&&i._isTransitioning))){var r=e.Event("show.bs.collapse");if(e(this._element).trigger(r),!r.isDefaultPrevented()){n&&(t._jQueryInterface.call(e(n).not(this._selector),"hide"),i||e(n).data("bs.collapse",null));var a=this._getDimension();e(this._element).removeClass("collapse").addClass("collapsing"),this._element.style[a]=0,this._triggerArray.length&&e(this._triggerArray).removeClass("collapsed").attr("aria-expanded",!0),this.setTransitioning(!0);var l="scroll"+(a[0].toUpperCase()+a.slice(1)),c=s.getTransitionDurationFromElement(this._element);e(this._element).one(s.TRANSITION_END,(function(){e(o._element).removeClass("collapsing").addClass("collapse show"),o._element.style[a]="",o.setTransitioning(!1),e(o._element).trigger("shown.bs.collapse")})).emulateTransitionEnd(c),this._element.style[a]=this._element[l]+"px"}}},n.hide=function(){var t=this;if(!this._isTransitioning&&e(this._element).hasClass("show")){var n=e.Event("hide.bs.collapse");if(e(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension();this._element.style[i]=this._element.getBoundingClientRect()[i]+"px",s.reflow(this._element),e(this._element).addClass("collapsing").removeClass("collapse show");var o=this._triggerArray.length;if(o>0)for(var r=0;r<o;r++){var a=this._triggerArray[r],l=s.getSelectorFromElement(a);if(null!==l)e([].slice.call(document.querySelectorAll(l))).hasClass("show")||e(a).addClass("collapsed").attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[i]="";var c=s.getTransitionDurationFromElement(this._element);e(this._element).one(s.TRANSITION_END,(function(){t.setTransitioning(!1),e(t._element).removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")})).emulateTransitionEnd(c)}}},n.setTransitioning=function(t){this._isTransitioning=t},n.dispose=function(){e.removeData(this._element,"bs.collapse"),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},n._getConfig=function(t){return(t=o({},w,t)).toggle=Boolean(t.toggle),s.typeCheckConfig(b,t,E),t},n._getDimension=function(){return e(this._element).hasClass("width")?"width":"height"},n._getParent=function(){var n,i=this;s.isElement(this._config.parent)?(n=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(n=this._config.parent[0])):n=document.querySelector(this._config.parent);var o='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',r=[].slice.call(n.querySelectorAll(o));return e(r).each((function(e,n){i._addAriaAndCollapsedClass(t._getTargetFromElement(n),[n])})),n},n._addAriaAndCollapsedClass=function(t,n){var i=e(t).hasClass("show");n.length&&e(n).toggleClass("collapsed",!i).attr("aria-expanded",i)},t._getTargetFromElement=function(t){var e=s.getSelectorFromElement(t);return e?document.querySelector(e):null},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),r=i.data("bs.collapse"),s=o({},w,i.data(),"object"==typeof n&&n?n:{});if(!r&&s.toggle&&"string"==typeof n&&/show|hide/.test(n)&&(s.toggle=!1),r||(r=new t(this,s),i.data("bs.collapse",r)),"string"==typeof n){if("undefined"==typeof r[n])throw new TypeError('No method named "'+n+'"');r[n]()}}))},i(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return w}}]),t}();e(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',(function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var n=e(this),i=s.getSelectorFromElement(this),o=[].slice.call(document.querySelectorAll(i));e(o).each((function(){var t=e(this),i=t.data("bs.collapse")?"toggle":n.data();T._jQueryInterface.call(t,i)}))})),e.fn[b]=T._jQueryInterface,e.fn[b].Constructor=T,e.fn[b].noConflict=function(){return e.fn[b]=y,T._jQueryInterface};var C="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,S=function(){for(var t=["Edge","Trident","Firefox"],e=0;e<t.length;e+=1)if(C&&navigator.userAgent.indexOf(t[e])>=0)return 1;return 0}();var D=C&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then((function(){e=!1,t()})))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout((function(){e=!1,t()}),S))}};function N(t){return t&&"[object Function]"==={}.toString.call(t)}function k(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function A(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function I(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=k(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:I(A(t))}function O(t){return t&&t.referenceNode?t.referenceNode:t}var x=C&&!(!window.MSInputMethodContext||!document.documentMode),j=C&&/MSIE 10/.test(navigator.userAgent);function L(t){return 11===t?x:10===t?j:x||j}function P(t){if(!t)return document.documentElement;for(var e=L(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===k(n,"position")?P(n):n:t?t.ownerDocument.documentElement:document.documentElement}function F(t){return null!==t.parentNode?F(t.parentNode):t}function R(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,r=document.createRange();r.setStart(i,0),r.setEnd(o,0);var s,a,l=r.commonAncestorContainer;if(t!==l&&e!==l||i.contains(o))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&P(s.firstElementChild)!==s?P(l):l;var c=F(t);return c.host?R(c.host,e):R(t,F(e).host)}function H(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===e?"scrollTop":"scrollLeft",i=t.nodeName;if("BODY"===i||"HTML"===i){var o=t.ownerDocument.documentElement,r=t.ownerDocument.scrollingElement||o;return r[n]}return t[n]}function M(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=H(e,"top"),o=H(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}function B(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"])+parseFloat(t["border"+i+"Width"])}function q(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],L(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function Q(t){var e=t.body,n=t.documentElement,i=L(10)&&getComputedStyle(n);return{height:q("Height",e,n,i),width:q("Width",e,n,i)}}var W=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},U=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),V=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},Y=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t};function z(t){return Y({},t,{right:t.left+t.width,bottom:t.top+t.height})}function X(t){var e={};try{if(L(10)){e=t.getBoundingClientRect();var n=H(t,"top"),i=H(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}else e=t.getBoundingClientRect()}catch(t){}var o={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},r="HTML"===t.nodeName?Q(t.ownerDocument):{},s=r.width||t.clientWidth||o.width,a=r.height||t.clientHeight||o.height,l=t.offsetWidth-s,c=t.offsetHeight-a;if(l||c){var h=k(t);l-=B(h,"x"),c-=B(h,"y"),o.width-=l,o.height-=c}return z(o)}function K(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=L(10),o="HTML"===e.nodeName,r=X(t),s=X(e),a=I(t),l=k(e),c=parseFloat(l.borderTopWidth),h=parseFloat(l.borderLeftWidth);n&&o&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var u=z({top:r.top-s.top-c,left:r.left-s.left-h,width:r.width,height:r.height});if(u.marginTop=0,u.marginLeft=0,!i&&o){var f=parseFloat(l.marginTop),d=parseFloat(l.marginLeft);u.top-=c-f,u.bottom-=c-f,u.left-=h-d,u.right-=h-d,u.marginTop=f,u.marginLeft=d}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(u=M(u,e)),u}function G(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=K(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:H(n),a=e?0:H(n,"left"),l={top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:r};return z(l)}function $(t){var e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===k(t,"position"))return!0;var n=A(t);return!!n&&$(n)}function J(t){if(!t||!t.parentElement||L())return document.documentElement;for(var e=t.parentElement;e&&"none"===k(e,"transform");)e=e.parentElement;return e||document.documentElement}function Z(t,e,n,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=o?J(t):R(t,O(e));if("viewport"===i)r=G(s,o);else{var a=void 0;"scrollParent"===i?"BODY"===(a=I(A(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var l=K(a,s,o);if("HTML"!==a.nodeName||$(s))r=l;else{var c=Q(t.ownerDocument),h=c.height,u=c.width;r.top+=l.top-l.marginTop,r.bottom=h+l.top,r.left+=l.left-l.marginLeft,r.right=u+l.left}}var f="number"==typeof(n=n||0);return r.left+=f?n:n.left||0,r.top+=f?n:n.top||0,r.right-=f?n:n.right||0,r.bottom-=f?n:n.bottom||0,r}function tt(t){return t.width*t.height}function et(t,e,n,i,o){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=Z(n,i,r,o),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(a).map((function(t){return Y({key:t},a[t],{area:tt(a[t])})})).sort((function(t,e){return e.area-t.area})),c=l.filter((function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight})),h=c.length>0?c[0].key:l[0].key,u=t.split("-")[1];return h+(u?"-"+u:"")}function nt(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=i?J(e):R(e,O(n));return K(n,o,i)}function it(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),i=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function ot(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,(function(t){return e[t]}))}function rt(t,e,n){n=n.split("-")[0];var i=it(t),o={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(n),s=r?"top":"left",a=r?"left":"top",l=r?"height":"width",c=r?"width":"height";return o[s]=e[s]+e[l]/2-i[l]/2,o[a]=n===a?e[a]-i[c]:e[ot(a)],o}function st(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function at(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex((function(t){return t[e]===n}));var i=st(t,(function(t){return t[e]===n}));return t.indexOf(i)}(t,"name",n))).forEach((function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&N(n)&&(e.offsets.popper=z(e.offsets.popper),e.offsets.reference=z(e.offsets.reference),e=n(e,t))})),e}function lt(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=nt(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=et(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=rt(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=at(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function ct(t,e){return t.some((function(t){var n=t.name;return t.enabled&&n===e}))}function ht(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<e.length;i++){var o=e[i],r=o?""+o+n:t;if("undefined"!=typeof document.body.style[r])return r}return null}function ut(){return this.state.isDestroyed=!0,ct(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[ht("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function ft(t){var e=t.ownerDocument;return e?e.defaultView:window}function dt(t,e,n,i){n.updateBound=i,ft(t).addEventListener("resize",n.updateBound,{passive:!0});var o=I(t);return function t(e,n,i,o){var r="BODY"===e.nodeName,s=r?e.ownerDocument.defaultView:e;s.addEventListener(n,i,{passive:!0}),r||t(I(s.parentNode),n,i,o),o.push(s)}(o,"scroll",n.updateBound,n.scrollParents),n.scrollElement=o,n.eventsEnabled=!0,n}function pt(){this.state.eventsEnabled||(this.state=dt(this.reference,this.options,this.state,this.scheduleUpdate))}function mt(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,ft(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach((function(t){t.removeEventListener("scroll",e.updateBound)})),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function gt(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function _t(t,e){Object.keys(e).forEach((function(n){var i="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&>(e[n])&&(i="px"),t.style[n]=e[n]+i}))}var vt=C&&/Firefox/i.test(navigator.userAgent);function bt(t,e,n){var i=st(t,(function(t){return t.name===e})),o=!!i&&t.some((function(t){return t.name===n&&t.enabled&&t.order<i.order}));if(!o){var r="`"+e+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+r+" modifier in order to work, be sure to include it before "+r+"!")}return o}var yt=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],wt=yt.slice(3);function Et(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=wt.indexOf(t),i=wt.slice(n+1).concat(wt.slice(0,n));return e?i.reverse():i}var Tt="flip",Ct="clockwise",St="counterclockwise";function Dt(t,e,n,i){var o=[0,0],r=-1!==["right","left"].indexOf(i),s=t.split(/(\+|\-)/).map((function(t){return t.trim()})),a=s.indexOf(st(s,(function(t){return-1!==t.search(/,|\s/)})));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==a?[s.slice(0,a).concat([s[a].split(l)[0]]),[s[a].split(l)[1]].concat(s.slice(a+1))]:[s];return(c=c.map((function(t,i){var o=(1===i?!r:r)?"height":"width",s=!1;return t.reduce((function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,s=!0,t):s?(t[t.length-1]+=e,s=!1,t):t.concat(e)}),[]).map((function(t){return function(t,e,n,i){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+o[1],s=o[2];if(!r)return t;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=i}return z(a)[e]/100*r}if("vh"===s||"vw"===s){return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r}return r}(t,o,e,n)}))}))).forEach((function(t,e){t.forEach((function(n,i){gt(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))}))})),o}var Nt={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var o=t.offsets,r=o.reference,s=o.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",h={start:V({},l,r[l]),end:V({},l,r[l]+r[c]-s[c])};t.offsets.popper=Y({},s,h[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,o=t.offsets,r=o.popper,s=o.reference,a=i.split("-")[0],l=void 0;return l=gt(+n)?[+n,0]:Dt(n,r,s,a),"left"===a?(r.top+=l[0],r.left-=l[1]):"right"===a?(r.top+=l[0],r.left+=l[1]):"top"===a?(r.left+=l[0],r.top-=l[1]):"bottom"===a&&(r.left+=l[0],r.top+=l[1]),t.popper=r,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var n=e.boundariesElement||P(t.instance.popper);t.instance.reference===n&&(n=P(n));var i=ht("transform"),o=t.instance.popper.style,r=o.top,s=o.left,a=o[i];o.top="",o.left="",o[i]="";var l=Z(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);o.top=r,o.left=s,o[i]=a,e.boundaries=l;var c=e.priority,h=t.offsets.popper,u={primary:function(t){var n=h[t];return h[t]<l[t]&&!e.escapeWithReference&&(n=Math.max(h[t],l[t])),V({},t,n)},secondary:function(t){var n="right"===t?"left":"top",i=h[n];return h[t]>l[t]&&!e.escapeWithReference&&(i=Math.min(h[n],l[t]-("right"===t?h.width:h.height))),V({},n,i)}};return c.forEach((function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";h=Y({},h,u[e](t))})),t.offsets.popper=h,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(o),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]<r(i[l])&&(t.offsets.popper[l]=r(i[l])-n[c]),n[l]>r(i[a])&&(t.offsets.popper[l]=r(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!bt(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],r=t.offsets,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(o),c=l?"height":"width",h=l?"Top":"Left",u=h.toLowerCase(),f=l?"left":"top",d=l?"bottom":"right",p=it(i)[c];a[d]-p<s[u]&&(t.offsets.popper[u]-=s[u]-(a[d]-p)),a[u]+p>s[d]&&(t.offsets.popper[u]+=a[u]+p-s[d]),t.offsets.popper=z(t.offsets.popper);var m=a[u]+a[c]/2-p/2,g=k(t.instance.popper),_=parseFloat(g["margin"+h]),v=parseFloat(g["border"+h+"Width"]),b=m-t.offsets.popper[u]-_-v;return b=Math.max(Math.min(s[c]-p,b),0),t.arrowElement=i,t.offsets.arrow=(V(n={},u,Math.round(b)),V(n,f,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(ct(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=Z(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=ot(i),r=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case Tt:s=[i,o];break;case Ct:s=Et(i);break;case St:s=Et(i,!0);break;default:s=e.behavior}return s.forEach((function(a,l){if(i!==a||s.length===l+1)return t;i=t.placement.split("-")[0],o=ot(i);var c=t.offsets.popper,h=t.offsets.reference,u=Math.floor,f="left"===i&&u(c.right)>u(h.left)||"right"===i&&u(c.left)<u(h.right)||"top"===i&&u(c.bottom)>u(h.top)||"bottom"===i&&u(c.top)<u(h.bottom),d=u(c.left)<u(n.left),p=u(c.right)>u(n.right),m=u(c.top)<u(n.top),g=u(c.bottom)>u(n.bottom),_="left"===i&&d||"right"===i&&p||"top"===i&&m||"bottom"===i&&g,v=-1!==["top","bottom"].indexOf(i),b=!!e.flipVariations&&(v&&"start"===r&&d||v&&"end"===r&&p||!v&&"start"===r&&m||!v&&"end"===r&&g),y=!!e.flipVariationsByContent&&(v&&"start"===r&&p||v&&"end"===r&&d||!v&&"start"===r&&g||!v&&"end"===r&&m),w=b||y;(f||_||w)&&(t.flipped=!0,(f||_)&&(i=s[l+1]),w&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=i+(r?"-"+r:""),t.offsets.popper=Y({},t.offsets.popper,rt(t.instance.popper,t.offsets.reference,t.placement)),t=at(t.instance.modifiers,t,"flip"))})),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,o=i.popper,r=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return o[s?"left":"top"]=r[n]-(a?o[s?"width":"height"]:0),t.placement=ot(e),t.offsets.popper=z(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!bt(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=st(t.instance.modifiers,(function(t){return"preventOverflow"===t.name})).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,i=e.y,o=t.offsets.popper,r=st(t.instance.modifiers,(function(t){return"applyStyle"===t.name})).gpuAcceleration;void 0!==r&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s=void 0!==r?r:e.gpuAcceleration,a=P(t.instance.popper),l=X(a),c={position:o.position},h=function(t,e){var n=t.offsets,i=n.popper,o=n.reference,r=Math.round,s=Math.floor,a=function(t){return t},l=r(o.width),c=r(i.width),h=-1!==["left","right"].indexOf(t.placement),u=-1!==t.placement.indexOf("-"),f=e?h||u||l%2==c%2?r:s:a,d=e?r:a;return{left:f(l%2==1&&c%2==1&&!u&&e?i.left-1:i.left),top:d(i.top),bottom:d(i.bottom),right:f(i.right)}}(t,window.devicePixelRatio<2||!vt),u="bottom"===n?"top":"bottom",f="right"===i?"left":"right",d=ht("transform"),p=void 0,m=void 0;if(m="bottom"===u?"HTML"===a.nodeName?-a.clientHeight+h.bottom:-l.height+h.bottom:h.top,p="right"===f?"HTML"===a.nodeName?-a.clientWidth+h.right:-l.width+h.right:h.left,s&&d)c[d]="translate3d("+p+"px, "+m+"px, 0)",c[u]=0,c[f]=0,c.willChange="transform";else{var g="bottom"===u?-1:1,_="right"===f?-1:1;c[u]=m*g,c[f]=p*_,c.willChange=u+", "+f}var v={"x-placement":t.placement};return t.attributes=Y({},v,t.attributes),t.styles=Y({},c,t.styles),t.arrowStyles=Y({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return _t(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach((function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)})),t.arrowElement&&Object.keys(t.arrowStyles).length&&_t(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,o){var r=nt(o,e,t,n.positionFixed),s=et(n.placement,r,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),_t(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},kt=function(){function t(e,n){var i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};W(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=D(this.update.bind(this)),this.options=Y({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(Y({},t.Defaults.modifiers,o.modifiers)).forEach((function(e){i.options.modifiers[e]=Y({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(t){return Y({name:t},i.options.modifiers[t])})).sort((function(t,e){return t.order-e.order})),this.modifiers.forEach((function(t){t.enabled&&N(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)})),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return U(t,[{key:"update",value:function(){return lt.call(this)}},{key:"destroy",value:function(){return ut.call(this)}},{key:"enableEventListeners",value:function(){return pt.call(this)}},{key:"disableEventListeners",value:function(){return mt.call(this)}}]),t}();kt.Utils=("undefined"!=typeof window?window:global).PopperUtils,kt.placements=yt,kt.Defaults=Nt;var At="dropdown",It=e.fn[At],Ot=new RegExp("38|40|27"),xt={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},jt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},Lt=function(){function t(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var n=t.prototype;return n.toggle=function(){if(!this._element.disabled&&!e(this._element).hasClass("disabled")){var n=e(this._menu).hasClass("show");t._clearMenus(),n||this.show(!0)}},n.show=function(n){if(void 0===n&&(n=!1),!(this._element.disabled||e(this._element).hasClass("disabled")||e(this._menu).hasClass("show"))){var i={relatedTarget:this._element},o=e.Event("show.bs.dropdown",i),r=t._getParentFromElement(this._element);if(e(r).trigger(o),!o.isDefaultPrevented()){if(!this._inNavbar&&n){if("undefined"==typeof kt)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");var a=this._element;"parent"===this._config.reference?a=r:s.isElement(this._config.reference)&&(a=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(a=this._config.reference[0])),"scrollParent"!==this._config.boundary&&e(r).addClass("position-static"),this._popper=new kt(a,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===e(r).closest(".navbar-nav").length&&e(document.body).children().on("mouseover",null,e.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),e(this._menu).toggleClass("show"),e(r).toggleClass("show").trigger(e.Event("shown.bs.dropdown",i))}}},n.hide=function(){if(!this._element.disabled&&!e(this._element).hasClass("disabled")&&e(this._menu).hasClass("show")){var n={relatedTarget:this._element},i=e.Event("hide.bs.dropdown",n),o=t._getParentFromElement(this._element);e(o).trigger(i),i.isDefaultPrevented()||(this._popper&&this._popper.destroy(),e(this._menu).toggleClass("show"),e(o).toggleClass("show").trigger(e.Event("hidden.bs.dropdown",n)))}},n.dispose=function(){e.removeData(this._element,"bs.dropdown"),e(this._element).off(".bs.dropdown"),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},n.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},n._addEventListeners=function(){var t=this;e(this._element).on("click.bs.dropdown",(function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}))},n._getConfig=function(t){return t=o({},this.constructor.Default,e(this._element).data(),t),s.typeCheckConfig(At,t,this.constructor.DefaultType),t},n._getMenuElement=function(){if(!this._menu){var e=t._getParentFromElement(this._element);e&&(this._menu=e.querySelector(".dropdown-menu"))}return this._menu},n._getPlacement=function(){var t=e(this._element.parentNode),n="bottom-start";return t.hasClass("dropup")?n=e(this._menu).hasClass("dropdown-menu-right")?"top-end":"top-start":t.hasClass("dropright")?n="right-start":t.hasClass("dropleft")?n="left-start":e(this._menu).hasClass("dropdown-menu-right")&&(n="bottom-end"),n},n._detectNavbar=function(){return e(this._element).closest(".navbar").length>0},n._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=o({},e.offsets,t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},n._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),o({},t,this._config.popperConfig)},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.dropdown");if(i||(i=new t(this,"object"==typeof n?n:null),e(this).data("bs.dropdown",i)),"string"==typeof n){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}}))},t._clearMenus=function(n){if(!n||3!==n.which&&("keyup"!==n.type||9===n.which))for(var i=[].slice.call(document.querySelectorAll('[data-toggle="dropdown"]')),o=0,r=i.length;o<r;o++){var s=t._getParentFromElement(i[o]),a=e(i[o]).data("bs.dropdown"),l={relatedTarget:i[o]};if(n&&"click"===n.type&&(l.clickEvent=n),a){var c=a._menu;if(e(s).hasClass("show")&&!(n&&("click"===n.type&&/input|textarea/i.test(n.target.tagName)||"keyup"===n.type&&9===n.which)&&e.contains(s,n.target))){var h=e.Event("hide.bs.dropdown",l);e(s).trigger(h),h.isDefaultPrevented()||("ontouchstart"in document.documentElement&&e(document.body).children().off("mouseover",null,e.noop),i[o].setAttribute("aria-expanded","false"),a._popper&&a._popper.destroy(),e(c).removeClass("show"),e(s).removeClass("show").trigger(e.Event("hidden.bs.dropdown",l)))}}}},t._getParentFromElement=function(t){var e,n=s.getSelectorFromElement(t);return n&&(e=document.querySelector(n)),e||t.parentNode},t._dataApiKeydownHandler=function(n){if(!(/input|textarea/i.test(n.target.tagName)?32===n.which||27!==n.which&&(40!==n.which&&38!==n.which||e(n.target).closest(".dropdown-menu").length):!Ot.test(n.which))&&!this.disabled&&!e(this).hasClass("disabled")){var i=t._getParentFromElement(this),o=e(i).hasClass("show");if(o||27!==n.which){if(n.preventDefault(),n.stopPropagation(),!o||o&&(27===n.which||32===n.which))return 27===n.which&&e(i.querySelector('[data-toggle="dropdown"]')).trigger("focus"),void e(this).trigger("click");var r=[].slice.call(i.querySelectorAll(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)")).filter((function(t){return e(t).is(":visible")}));if(0!==r.length){var s=r.indexOf(n.target);38===n.which&&s>0&&s--,40===n.which&&s<r.length-1&&s++,s<0&&(s=0),r[s].focus()}}}},i(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return xt}},{key:"DefaultType",get:function(){return jt}}]),t}();e(document).on("keydown.bs.dropdown.data-api",'[data-toggle="dropdown"]',Lt._dataApiKeydownHandler).on("keydown.bs.dropdown.data-api",".dropdown-menu",Lt._dataApiKeydownHandler).on("click.bs.dropdown.data-api keyup.bs.dropdown.data-api",Lt._clearMenus).on("click.bs.dropdown.data-api",'[data-toggle="dropdown"]',(function(t){t.preventDefault(),t.stopPropagation(),Lt._jQueryInterface.call(e(this),"toggle")})).on("click.bs.dropdown.data-api",".dropdown form",(function(t){t.stopPropagation()})),e.fn[At]=Lt._jQueryInterface,e.fn[At].Constructor=Lt,e.fn[At].noConflict=function(){return e.fn[At]=It,Lt._jQueryInterface};var Pt=e.fn.modal,Ft={backdrop:!0,keyboard:!0,focus:!0,show:!0},Rt={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Ht=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=t.querySelector(".modal-dialog"),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}var n=t.prototype;return n.toggle=function(t){return this._isShown?this.hide():this.show(t)},n.show=function(t){var n=this;if(!this._isShown&&!this._isTransitioning){e(this._element).hasClass("fade")&&(this._isTransitioning=!0);var i=e.Event("show.bs.modal",{relatedTarget:t});e(this._element).trigger(i),this._isShown||i.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),e(this._element).on("click.dismiss.bs.modal",'[data-dismiss="modal"]',(function(t){return n.hide(t)})),e(this._dialog).on("mousedown.dismiss.bs.modal",(function(){e(n._element).one("mouseup.dismiss.bs.modal",(function(t){e(t.target).is(n._element)&&(n._ignoreBackdropClick=!0)}))})),this._showBackdrop((function(){return n._showElement(t)})))}},n.hide=function(t){var n=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var i=e.Event("hide.bs.modal");if(e(this._element).trigger(i),this._isShown&&!i.isDefaultPrevented()){this._isShown=!1;var o=e(this._element).hasClass("fade");if(o&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),e(document).off("focusin.bs.modal"),e(this._element).removeClass("show"),e(this._element).off("click.dismiss.bs.modal"),e(this._dialog).off("mousedown.dismiss.bs.modal"),o){var r=s.getTransitionDurationFromElement(this._element);e(this._element).one(s.TRANSITION_END,(function(t){return n._hideModal(t)})).emulateTransitionEnd(r)}else this._hideModal()}}},n.dispose=function(){[window,this._element,this._dialog].forEach((function(t){return e(t).off(".bs.modal")})),e(document).off("focusin.bs.modal"),e.removeData(this._element,"bs.modal"),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},n.handleUpdate=function(){this._adjustDialog()},n._getConfig=function(t){return t=o({},Ft,t),s.typeCheckConfig("modal",t,Rt),t},n._triggerBackdropTransition=function(){var t=this;if("static"===this._config.backdrop){var n=e.Event("hidePrevented.bs.modal");if(e(this._element).trigger(n),n.defaultPrevented)return;var i=this._element.scrollHeight>document.documentElement.clientHeight;i||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");var o=s.getTransitionDurationFromElement(this._dialog);e(this._element).off(s.TRANSITION_END),e(this._element).one(s.TRANSITION_END,(function(){t._element.classList.remove("modal-static"),i||e(t._element).one(s.TRANSITION_END,(function(){t._element.style.overflowY=""})).emulateTransitionEnd(t._element,o)})).emulateTransitionEnd(o),this._element.focus()}else this.hide()},n._showElement=function(t){var n=this,i=e(this._element).hasClass("fade"),o=this._dialog?this._dialog.querySelector(".modal-body"):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),e(this._dialog).hasClass("modal-dialog-scrollable")&&o?o.scrollTop=0:this._element.scrollTop=0,i&&s.reflow(this._element),e(this._element).addClass("show"),this._config.focus&&this._enforceFocus();var r=e.Event("shown.bs.modal",{relatedTarget:t}),a=function(){n._config.focus&&n._element.focus(),n._isTransitioning=!1,e(n._element).trigger(r)};if(i){var l=s.getTransitionDurationFromElement(this._dialog);e(this._dialog).one(s.TRANSITION_END,a).emulateTransitionEnd(l)}else a()},n._enforceFocus=function(){var t=this;e(document).off("focusin.bs.modal").on("focusin.bs.modal",(function(n){document!==n.target&&t._element!==n.target&&0===e(t._element).has(n.target).length&&t._element.focus()}))},n._setEscapeEvent=function(){var t=this;this._isShown?e(this._element).on("keydown.dismiss.bs.modal",(function(e){t._config.keyboard&&27===e.which?(e.preventDefault(),t.hide()):t._config.keyboard||27!==e.which||t._triggerBackdropTransition()})):this._isShown||e(this._element).off("keydown.dismiss.bs.modal")},n._setResizeEvent=function(){var t=this;this._isShown?e(window).on("resize.bs.modal",(function(e){return t.handleUpdate(e)})):e(window).off("resize.bs.modal")},n._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){e(document.body).removeClass("modal-open"),t._resetAdjustments(),t._resetScrollbar(),e(t._element).trigger("hidden.bs.modal")}))},n._removeBackdrop=function(){this._backdrop&&(e(this._backdrop).remove(),this._backdrop=null)},n._showBackdrop=function(t){var n=this,i=e(this._element).hasClass("fade")?"fade":"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",i&&this._backdrop.classList.add(i),e(this._backdrop).appendTo(document.body),e(this._element).on("click.dismiss.bs.modal",(function(t){n._ignoreBackdropClick?n._ignoreBackdropClick=!1:t.target===t.currentTarget&&n._triggerBackdropTransition()})),i&&s.reflow(this._backdrop),e(this._backdrop).addClass("show"),!t)return;if(!i)return void t();var o=s.getTransitionDurationFromElement(this._backdrop);e(this._backdrop).one(s.TRANSITION_END,t).emulateTransitionEnd(o)}else if(!this._isShown&&this._backdrop){e(this._backdrop).removeClass("show");var r=function(){n._removeBackdrop(),t&&t()};if(e(this._element).hasClass("fade")){var a=s.getTransitionDurationFromElement(this._backdrop);e(this._backdrop).one(s.TRANSITION_END,r).emulateTransitionEnd(a)}else r()}else t&&t()},n._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},n._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},n._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},n._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){var n=[].slice.call(document.querySelectorAll(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top")),i=[].slice.call(document.querySelectorAll(".sticky-top"));e(n).each((function(n,i){var o=i.style.paddingRight,r=e(i).css("padding-right");e(i).data("padding-right",o).css("padding-right",parseFloat(r)+t._scrollbarWidth+"px")})),e(i).each((function(n,i){var o=i.style.marginRight,r=e(i).css("margin-right");e(i).data("margin-right",o).css("margin-right",parseFloat(r)-t._scrollbarWidth+"px")}));var o=document.body.style.paddingRight,r=e(document.body).css("padding-right");e(document.body).data("padding-right",o).css("padding-right",parseFloat(r)+this._scrollbarWidth+"px")}e(document.body).addClass("modal-open")},n._resetScrollbar=function(){var t=[].slice.call(document.querySelectorAll(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top"));e(t).each((function(t,n){var i=e(n).data("padding-right");e(n).removeData("padding-right"),n.style.paddingRight=i||""}));var n=[].slice.call(document.querySelectorAll(".sticky-top"));e(n).each((function(t,n){var i=e(n).data("margin-right");"undefined"!=typeof i&&e(n).css("margin-right",i).removeData("margin-right")}));var i=e(document.body).data("padding-right");e(document.body).removeData("padding-right"),document.body.style.paddingRight=i||""},n._getScrollbarWidth=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t._jQueryInterface=function(n,i){return this.each((function(){var r=e(this).data("bs.modal"),s=o({},Ft,e(this).data(),"object"==typeof n&&n?n:{});if(r||(r=new t(this,s),e(this).data("bs.modal",r)),"string"==typeof n){if("undefined"==typeof r[n])throw new TypeError('No method named "'+n+'"');r[n](i)}else s.show&&r.show(i)}))},i(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return Ft}}]),t}();e(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',(function(t){var n,i=this,r=s.getSelectorFromElement(this);r&&(n=document.querySelector(r));var a=e(n).data("bs.modal")?"toggle":o({},e(n).data(),e(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var l=e(n).one("show.bs.modal",(function(t){t.isDefaultPrevented()||l.one("hidden.bs.modal",(function(){e(i).is(":visible")&&i.focus()}))}));Ht._jQueryInterface.call(e(n),a,this)})),e.fn.modal=Ht._jQueryInterface,e.fn.modal.Constructor=Ht,e.fn.modal.noConflict=function(){return e.fn.modal=Pt,Ht._jQueryInterface};var Mt=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Bt={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},qt=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,Qt=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;function Wt(t,e,n){if(0===t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),r=[].slice.call(i.body.querySelectorAll("*")),s=function(t,n){var i=r[t],s=i.nodeName.toLowerCase();if(-1===o.indexOf(i.nodeName.toLowerCase()))return i.parentNode.removeChild(i),"continue";var a=[].slice.call(i.attributes),l=[].concat(e["*"]||[],e[s]||[]);a.forEach((function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Mt.indexOf(n)||Boolean(t.nodeValue.match(qt)||t.nodeValue.match(Qt));for(var i=e.filter((function(t){return t instanceof RegExp})),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1})(t,l)||i.removeAttribute(t.nodeName)}))},a=0,l=r.length;a<l;a++)s(a);return i.body.innerHTML}var Ut="tooltip",Vt=e.fn[Ut],Yt=new RegExp("(^|\\s)bs-tooltip\\S+","g"),zt=["sanitize","whiteList","sanitizeFn"],Xt={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object",popperConfig:"(null|object)"},Kt={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Gt={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Bt,popperConfig:null},$t={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},Jt=function(){function t(t,e){if("undefined"==typeof kt)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var n=t.prototype;return n.enable=function(){this._isEnabled=!0},n.disable=function(){this._isEnabled=!1},n.toggleEnabled=function(){this._isEnabled=!this._isEnabled},n.toggle=function(t){if(this._isEnabled)if(t){var n=this.constructor.DATA_KEY,i=e(t.currentTarget).data(n);i||(i=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(e(this.getTipElement()).hasClass("show"))return void this._leave(null,this);this._enter(null,this)}},n.dispose=function(){clearTimeout(this._timeout),e.removeData(this.element,this.constructor.DATA_KEY),e(this.element).off(this.constructor.EVENT_KEY),e(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&e(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},n.show=function(){var t=this;if("none"===e(this.element).css("display"))throw new Error("Please use show on visible elements");var n=e.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){e(this.element).trigger(n);var i=s.findShadowRoot(this.element),o=e.contains(null!==i?i:this.element.ownerDocument.documentElement,this.element);if(n.isDefaultPrevented()||!o)return;var r=this.getTipElement(),a=s.getUID(this.constructor.NAME);r.setAttribute("id",a),this.element.setAttribute("aria-describedby",a),this.setContent(),this.config.animation&&e(r).addClass("fade");var l="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,c=this._getAttachment(l);this.addAttachmentClass(c);var h=this._getContainer();e(r).data(this.constructor.DATA_KEY,this),e.contains(this.element.ownerDocument.documentElement,this.tip)||e(r).appendTo(h),e(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new kt(this.element,r,this._getPopperConfig(c)),e(r).addClass("show"),"ontouchstart"in document.documentElement&&e(document.body).children().on("mouseover",null,e.noop);var u=function(){t.config.animation&&t._fixTransition();var n=t._hoverState;t._hoverState=null,e(t.element).trigger(t.constructor.Event.SHOWN),"out"===n&&t._leave(null,t)};if(e(this.tip).hasClass("fade")){var f=s.getTransitionDurationFromElement(this.tip);e(this.tip).one(s.TRANSITION_END,u).emulateTransitionEnd(f)}else u()}},n.hide=function(t){var n=this,i=this.getTipElement(),o=e.Event(this.constructor.Event.HIDE),r=function(){"show"!==n._hoverState&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),e(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()};if(e(this.element).trigger(o),!o.isDefaultPrevented()){if(e(i).removeClass("show"),"ontouchstart"in document.documentElement&&e(document.body).children().off("mouseover",null,e.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,e(this.tip).hasClass("fade")){var a=s.getTransitionDurationFromElement(i);e(i).one(s.TRANSITION_END,r).emulateTransitionEnd(a)}else r();this._hoverState=""}},n.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},n.isWithContent=function(){return Boolean(this.getTitle())},n.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-tooltip-"+t)},n.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},n.setContent=function(){var t=this.getTipElement();this.setElementContent(e(t.querySelectorAll(".tooltip-inner")),this.getTitle()),e(t).removeClass("fade show")},n.setElementContent=function(t,n){"object"!=typeof n||!n.nodeType&&!n.jquery?this.config.html?(this.config.sanitize&&(n=Wt(n,this.config.whiteList,this.config.sanitizeFn)),t.html(n)):t.text(n):this.config.html?e(n).parent().is(t)||t.empty().append(n):t.text(e(n).text())},n.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},n._getPopperConfig=function(t){var e=this;return o({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},n._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=o({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},n._getContainer=function(){return!1===this.config.container?document.body:s.isElement(this.config.container)?e(this.config.container):e(document).find(this.config.container)},n._getAttachment=function(t){return Kt[t.toUpperCase()]},n._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(n){if("click"===n)e(t.element).on(t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==n){var i="hover"===n?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,o="hover"===n?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;e(t.element).on(i,t.config.selector,(function(e){return t._enter(e)})).on(o,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},e(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=o({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},n._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},n._enter=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e(n.getTipElement()).hasClass("show")||"show"===n._hoverState?n._hoverState="show":(clearTimeout(n._timeout),n._hoverState="show",n.config.delay&&n.config.delay.show?n._timeout=setTimeout((function(){"show"===n._hoverState&&n.show()}),n.config.delay.show):n.show())},n._leave=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState="out",n.config.delay&&n.config.delay.hide?n._timeout=setTimeout((function(){"out"===n._hoverState&&n.hide()}),n.config.delay.hide):n.hide())},n._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},n._getConfig=function(t){var n=e(this.element).data();return Object.keys(n).forEach((function(t){-1!==zt.indexOf(t)&&delete n[t]})),"number"==typeof(t=o({},this.constructor.Default,n,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),s.typeCheckConfig(Ut,t,this.constructor.DefaultType),t.sanitize&&(t.template=Wt(t.template,t.whiteList,t.sanitizeFn)),t},n._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},n._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(Yt);null!==n&&n.length&&t.removeClass(n.join(""))},n._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},n._fixTransition=function(){var t=this.getTipElement(),n=this.config.animation;null===t.getAttribute("x-placement")&&(e(t).removeClass("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.tooltip"),o="object"==typeof n&&n;if((i||!/dispose|hide/.test(n))&&(i||(i=new t(this,o),e(this).data("bs.tooltip",i)),"string"==typeof n)){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}}))},i(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return Gt}},{key:"NAME",get:function(){return Ut}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return $t}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Xt}}]),t}();e.fn[Ut]=Jt._jQueryInterface,e.fn[Ut].Constructor=Jt,e.fn[Ut].noConflict=function(){return e.fn[Ut]=Vt,Jt._jQueryInterface};var Zt="popover",te=e.fn[Zt],ee=new RegExp("(^|\\s)bs-popover\\S+","g"),ne=o({},Jt.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),ie=o({},Jt.DefaultType,{content:"(string|element|function)"}),oe={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},re=function(t){var n,o;function r(){return t.apply(this,arguments)||this}o=t,(n=r).prototype=Object.create(o.prototype),n.prototype.constructor=n,n.__proto__=o;var s=r.prototype;return s.isWithContent=function(){return this.getTitle()||this._getContent()},s.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-popover-"+t)},s.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},s.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());var n=this._getContent();"function"==typeof n&&(n=n.call(this.element)),this.setElementContent(t.find(".popover-body"),n),t.removeClass("fade show")},s._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},s._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(ee);null!==n&&n.length>0&&t.removeClass(n.join(""))},r._jQueryInterface=function(t){return this.each((function(){var n=e(this).data("bs.popover"),i="object"==typeof t?t:null;if((n||!/dispose|hide/.test(t))&&(n||(n=new r(this,i),e(this).data("bs.popover",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},i(r,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return ne}},{key:"NAME",get:function(){return Zt}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return oe}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return ie}}]),r}(Jt);e.fn[Zt]=re._jQueryInterface,e.fn[Zt].Constructor=re,e.fn[Zt].noConflict=function(){return e.fn[Zt]=te,re._jQueryInterface};var se="scrollspy",ae=e.fn[se],le={offset:10,method:"auto",target:""},ce={offset:"number",method:"string",target:"(string|element)"},he=function(){function t(t,n){var i=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(n),this._selector=this._config.target+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e(this._scrollElement).on("scroll.bs.scrollspy",(function(t){return i._process(t)})),this.refresh(),this._process()}var n=t.prototype;return n.refresh=function(){var t=this,n=this._scrollElement===this._scrollElement.window?"offset":"position",i="auto"===this._config.method?n:this._config.method,o="position"===i?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(t){var n,r=s.getSelectorFromElement(t);if(r&&(n=document.querySelector(r)),n){var a=n.getBoundingClientRect();if(a.width||a.height)return[e(n)[i]().top+o,r]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},n.dispose=function(){e.removeData(this._element,"bs.scrollspy"),e(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},n._getConfig=function(t){if("string"!=typeof(t=o({},le,"object"==typeof t&&t?t:{})).target&&s.isElement(t.target)){var n=e(t.target).attr("id");n||(n=s.getUID(se),e(t.target).attr("id",n)),t.target="#"+n}return s.typeCheckConfig(se,t,ce),t},n._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},n._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},n._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},n._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},n._activate=function(t){this._activeTarget=t,this._clear();var n=this._selector.split(",").map((function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'})),i=e([].slice.call(document.querySelectorAll(n.join(","))));i.hasClass("dropdown-item")?(i.closest(".dropdown").find(".dropdown-toggle").addClass("active"),i.addClass("active")):(i.addClass("active"),i.parents(".nav, .list-group").prev(".nav-link, .list-group-item").addClass("active"),i.parents(".nav, .list-group").prev(".nav-item").children(".nav-link").addClass("active")),e(this._scrollElement).trigger("activate.bs.scrollspy",{relatedTarget:t})},n._clear=function(){[].slice.call(document.querySelectorAll(this._selector)).filter((function(t){return t.classList.contains("active")})).forEach((function(t){return t.classList.remove("active")}))},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.scrollspy");if(i||(i=new t(this,"object"==typeof n&&n),e(this).data("bs.scrollspy",i)),"string"==typeof n){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}}))},i(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return le}}]),t}();e(window).on("load.bs.scrollspy.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-spy="scroll"]')),n=t.length;n--;){var i=e(t[n]);he._jQueryInterface.call(i,i.data())}})),e.fn[se]=he._jQueryInterface,e.fn[se].Constructor=he,e.fn[se].noConflict=function(){return e.fn[se]=ae,he._jQueryInterface};var ue=e.fn.tab,fe=function(){function t(t){this._element=t}var n=t.prototype;return n.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&e(this._element).hasClass("active")||e(this._element).hasClass("disabled"))){var n,i,o=e(this._element).closest(".nav, .list-group")[0],r=s.getSelectorFromElement(this._element);if(o){var a="UL"===o.nodeName||"OL"===o.nodeName?"> li > .active":".active";i=(i=e.makeArray(e(o).find(a)))[i.length-1]}var l=e.Event("hide.bs.tab",{relatedTarget:this._element}),c=e.Event("show.bs.tab",{relatedTarget:i});if(i&&e(i).trigger(l),e(this._element).trigger(c),!c.isDefaultPrevented()&&!l.isDefaultPrevented()){r&&(n=document.querySelector(r)),this._activate(this._element,o);var h=function(){var n=e.Event("hidden.bs.tab",{relatedTarget:t._element}),o=e.Event("shown.bs.tab",{relatedTarget:i});e(i).trigger(n),e(t._element).trigger(o)};n?this._activate(n,n.parentNode,h):h()}}},n.dispose=function(){e.removeData(this._element,"bs.tab"),this._element=null},n._activate=function(t,n,i){var o=this,r=(!n||"UL"!==n.nodeName&&"OL"!==n.nodeName?e(n).children(".active"):e(n).find("> li > .active"))[0],a=i&&r&&e(r).hasClass("fade"),l=function(){return o._transitionComplete(t,r,i)};if(r&&a){var c=s.getTransitionDurationFromElement(r);e(r).removeClass("show").one(s.TRANSITION_END,l).emulateTransitionEnd(c)}else l()},n._transitionComplete=function(t,n,i){if(n){e(n).removeClass("active");var o=e(n.parentNode).find("> .dropdown-menu .active")[0];o&&e(o).removeClass("active"),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!1)}if(e(t).addClass("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),s.reflow(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&e(t.parentNode).hasClass("dropdown-menu")){var r=e(t).closest(".dropdown")[0];if(r){var a=[].slice.call(r.querySelectorAll(".dropdown-toggle"));e(a).addClass("active")}t.setAttribute("aria-expanded",!0)}i&&i()},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.tab");if(o||(o=new t(this),i.data("bs.tab",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n]()}}))},i(t,null,[{key:"VERSION",get:function(){return"4.5.2"}}]),t}();e(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),fe._jQueryInterface.call(e(this),"show")})),e.fn.tab=fe._jQueryInterface,e.fn.tab.Constructor=fe,e.fn.tab.noConflict=function(){return e.fn.tab=ue,fe._jQueryInterface};var de=e.fn.toast,pe={animation:"boolean",autohide:"boolean",delay:"number"},me={animation:!0,autohide:!0,delay:500},ge=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var n=t.prototype;return n.show=function(){var t=this,n=e.Event("show.bs.toast");if(e(this._element).trigger(n),!n.isDefaultPrevented()){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var i=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),e(t._element).trigger("shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),s.reflow(this._element),this._element.classList.add("showing"),this._config.animation){var o=s.getTransitionDurationFromElement(this._element);e(this._element).one(s.TRANSITION_END,i).emulateTransitionEnd(o)}else i()}},n.hide=function(){if(this._element.classList.contains("show")){var t=e.Event("hide.bs.toast");e(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},n.dispose=function(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),e(this._element).off("click.dismiss.bs.toast"),e.removeData(this._element,"bs.toast"),this._element=null,this._config=null},n._getConfig=function(t){return t=o({},me,e(this._element).data(),"object"==typeof t&&t?t:{}),s.typeCheckConfig("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;e(this._element).on("click.dismiss.bs.toast",'[data-dismiss="toast"]',(function(){return t.hide()}))},n._close=function(){var t=this,n=function(){t._element.classList.add("hide"),e(t._element).trigger("hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var i=s.getTransitionDurationFromElement(this._element);e(this._element).one(s.TRANSITION_END,n).emulateTransitionEnd(i)}else n()},n._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.toast");if(o||(o=new t(this,"object"==typeof n&&n),i.data("bs.toast",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n](this)}}))},i(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"DefaultType",get:function(){return pe}},{key:"Default",get:function(){return me}}]),t}();e.fn.toast=ge._jQueryInterface,e.fn.toast.Constructor=ge,e.fn.toast.noConflict=function(){return e.fn.toast=de,ge._jQueryInterface},t.Alert=c,t.Button=u,t.Carousel=v,t.Collapse=T,t.Dropdown=Lt,t.Modal=Ht,t.Popover=re,t.Scrollspy=he,t.Tab=fe,t.Toast=ge,t.Tooltip=Jt,t.Util=s,Object.defineProperty(t,"__esModule",{value:!0})})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery")):"function"==typeof define&&define.amd?define(["exports","jquery"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap={},t.jQuery)}(this,(function(t,e){"use strict";function n(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=n(e);function o(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function r(t,e,n){return e&&o(t.prototype,e),n&&o(t,n),t}function a(){return(a=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t}).apply(this,arguments)}function s(t){var e=this,n=!1;return i.default(this).one(l.TRANSITION_END,(function(){n=!0})),setTimeout((function(){n||l.triggerTransitionEnd(e)}),t),this}var l={TRANSITION_END:"bsTransitionEnd",getUID:function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=i.default(t).css("transition-duration"),n=i.default(t).css("transition-delay"),o=parseFloat(e),r=parseFloat(n);return o||r?(e=e.split(",")[0],n=n.split(",")[0],1e3*(parseFloat(e)+parseFloat(n))):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){i.default(t).trigger("transitionend")},supportsTransitionEnd:function(){return Boolean("transitionend")},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var o=n[i],r=e[i],a=r&&l.isElement(r)?"element":null===(s=r)||"undefined"==typeof s?""+s:{}.toString.call(s).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(a))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+o+'".')}var s},findShadowRoot:function(t){if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){var e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?l.findShadowRoot(t.parentNode):null},jQueryDetection:function(){if("undefined"==typeof i.default)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=i.default.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||t[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};l.jQueryDetection(),i.default.fn.emulateTransitionEnd=s,i.default.event.special[l.TRANSITION_END]={bindType:"transitionend",delegateType:"transitionend",handle:function(t){if(i.default(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var u="alert",f=i.default.fn[u],d=function(){function t(t){this._element=t}var e=t.prototype;return e.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},e.dispose=function(){i.default.removeData(this._element,"bs.alert"),this._element=null},e._getRootElement=function(t){var e=l.getSelectorFromElement(t),n=!1;return e&&(n=document.querySelector(e)),n||(n=i.default(t).closest(".alert")[0]),n},e._triggerCloseEvent=function(t){var e=i.default.Event("close.bs.alert");return i.default(t).trigger(e),e},e._removeElement=function(t){var e=this;if(i.default(t).removeClass("show"),i.default(t).hasClass("fade")){var n=l.getTransitionDurationFromElement(t);i.default(t).one(l.TRANSITION_END,(function(n){return e._destroyElement(t,n)})).emulateTransitionEnd(n)}else this._destroyElement(t)},e._destroyElement=function(t){i.default(t).detach().trigger("closed.bs.alert").remove()},t._jQueryInterface=function(e){return this.each((function(){var n=i.default(this),o=n.data("bs.alert");o||(o=new t(this),n.data("bs.alert",o)),"close"===e&&o[e](this)}))},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},r(t,null,[{key:"VERSION",get:function(){return"4.5.3"}}]),t}();i.default(document).on("click.bs.alert.data-api",'[data-dismiss="alert"]',d._handleDismiss(new d)),i.default.fn[u]=d._jQueryInterface,i.default.fn[u].Constructor=d,i.default.fn[u].noConflict=function(){return i.default.fn[u]=f,d._jQueryInterface};var c=i.default.fn.button,h=function(){function t(t){this._element=t,this.shouldAvoidTriggerChange=!1}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=i.default(this._element).closest('[data-toggle="buttons"]')[0];if(n){var o=this._element.querySelector('input:not([type="hidden"])');if(o){if("radio"===o.type)if(o.checked&&this._element.classList.contains("active"))t=!1;else{var r=n.querySelector(".active");r&&i.default(r).removeClass("active")}t&&("checkbox"!==o.type&&"radio"!==o.type||(o.checked=!this._element.classList.contains("active")),this.shouldAvoidTriggerChange||i.default(o).trigger("change")),o.focus(),e=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains("active")),t&&i.default(this._element).toggleClass("active"))},e.dispose=function(){i.default.removeData(this._element,"bs.button"),this._element=null},t._jQueryInterface=function(e,n){return this.each((function(){var o=i.default(this),r=o.data("bs.button");r||(r=new t(this),o.data("bs.button",r)),r.shouldAvoidTriggerChange=n,"toggle"===e&&r[e]()}))},r(t,null,[{key:"VERSION",get:function(){return"4.5.3"}}]),t}();i.default(document).on("click.bs.button.data-api",'[data-toggle^="button"]',(function(t){var e=t.target,n=e;if(i.default(e).hasClass("btn")||(e=i.default(e).closest(".btn")[0]),!e||e.hasAttribute("disabled")||e.classList.contains("disabled"))t.preventDefault();else{var o=e.querySelector('input:not([type="hidden"])');if(o&&(o.hasAttribute("disabled")||o.classList.contains("disabled")))return void t.preventDefault();"INPUT"!==n.tagName&&"LABEL"===e.tagName||h._jQueryInterface.call(i.default(e),"toggle","INPUT"===n.tagName)}})).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',(function(t){var e=i.default(t.target).closest(".btn")[0];i.default(e).toggleClass("focus",/^focus(in)?$/.test(t.type))})),i.default(window).on("load.bs.button.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')),e=0,n=t.length;e<n;e++){var i=t[e],o=i.querySelector('input:not([type="hidden"])');o.checked||o.hasAttribute("checked")?i.classList.add("active"):i.classList.remove("active")}for(var r=0,a=(t=[].slice.call(document.querySelectorAll('[data-toggle="button"]'))).length;r<a;r++){var s=t[r];"true"===s.getAttribute("aria-pressed")?s.classList.add("active"):s.classList.remove("active")}})),i.default.fn.button=h._jQueryInterface,i.default.fn.button.Constructor=h,i.default.fn.button.noConflict=function(){return i.default.fn.button=c,h._jQueryInterface};var p="carousel",m=".bs.carousel",g=i.default.fn[p],v={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},_={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},b={TOUCH:"touch",PEN:"pen"},y=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=this._element.querySelector(".carousel-indicators"),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var e=t.prototype;return e.next=function(){this._isSliding||this._slide("next")},e.nextWhenVisible=function(){var t=i.default(this._element);!document.hidden&&t.is(":visible")&&"hidden"!==t.css("visibility")&&this.next()},e.prev=function(){this._isSliding||this._slide("prev")},e.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(l.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(t){var e=this;this._activeElement=this._element.querySelector(".active.carousel-item");var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)i.default(this._element).one("slid.bs.carousel",(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var o=t>n?"next":"prev";this._slide(o,this._items[t])}},e.dispose=function(){i.default(this._element).off(m),i.default.removeData(this._element,"bs.carousel"),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=a({},v,t),l.typeCheckConfig(p,t,_),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&i.default(this._element).on("keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&i.default(this._element).on("mouseenter.bs.carousel",(function(e){return t.pause(e)})).on("mouseleave.bs.carousel",(function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&b[e.originalEvent.pointerType.toUpperCase()]?t.touchStartX=e.originalEvent.clientX:t._pointerEvent||(t.touchStartX=e.originalEvent.touches[0].clientX)},n=function(e){t._pointerEvent&&b[e.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=e.originalEvent.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};i.default(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel",(function(t){return t.preventDefault()})),this._pointerEvent?(i.default(this._element).on("pointerdown.bs.carousel",(function(t){return e(t)})),i.default(this._element).on("pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(i.default(this._element).on("touchstart.bs.carousel",(function(t){return e(t)})),i.default(this._element).on("touchmove.bs.carousel",(function(e){return function(e){e.originalEvent.touches&&e.originalEvent.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.originalEvent.touches[0].clientX-t.touchStartX}(e)})),i.default(this._element).on("touchend.bs.carousel",(function(t){return n(t)})))}},e._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var a=(o+("prev"===t?-1:1))%this._items.length;return-1===a?this._items[this._items.length-1]:this._items[a]},e._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),o=this._getItemIndex(this._element.querySelector(".active.carousel-item")),r=i.default.Event("slide.bs.carousel",{relatedTarget:t,direction:e,from:o,to:n});return i.default(this._element).trigger(r),r},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));i.default(e).removeClass("active");var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&i.default(n).addClass("active")}},e._slide=function(t,e){var n,o,r,a=this,s=this._element.querySelector(".active.carousel-item"),u=this._getItemIndex(s),f=e||s&&this._getItemByDirection(t,s),d=this._getItemIndex(f),c=Boolean(this._interval);if("next"===t?(n="carousel-item-left",o="carousel-item-next",r="left"):(n="carousel-item-right",o="carousel-item-prev",r="right"),f&&i.default(f).hasClass("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(f,r).isDefaultPrevented()&&s&&f){this._isSliding=!0,c&&this.pause(),this._setActiveIndicatorElement(f);var h=i.default.Event("slid.bs.carousel",{relatedTarget:f,direction:r,from:u,to:d});if(i.default(this._element).hasClass("slide")){i.default(f).addClass(o),l.reflow(f),i.default(s).addClass(n),i.default(f).addClass(n);var p=parseInt(f.getAttribute("data-interval"),10);p?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=p):this._config.interval=this._config.defaultInterval||this._config.interval;var m=l.getTransitionDurationFromElement(s);i.default(s).one(l.TRANSITION_END,(function(){i.default(f).removeClass(n+" "+o).addClass("active"),i.default(s).removeClass("active "+o+" "+n),a._isSliding=!1,setTimeout((function(){return i.default(a._element).trigger(h)}),0)})).emulateTransitionEnd(m)}else i.default(s).removeClass("active"),i.default(f).addClass("active"),this._isSliding=!1,i.default(this._element).trigger(h);c&&this.cycle()}},t._jQueryInterface=function(e){return this.each((function(){var n=i.default(this).data("bs.carousel"),o=a({},v,i.default(this).data());"object"==typeof e&&(o=a({},o,e));var r="string"==typeof e?e:o.slide;if(n||(n=new t(this,o),i.default(this).data("bs.carousel",n)),"number"==typeof e)n.to(e);else if("string"==typeof r){if("undefined"==typeof n[r])throw new TypeError('No method named "'+r+'"');n[r]()}else o.interval&&o.ride&&(n.pause(),n.cycle())}))},t._dataApiClickHandler=function(e){var n=l.getSelectorFromElement(this);if(n){var o=i.default(n)[0];if(o&&i.default(o).hasClass("carousel")){var r=a({},i.default(o).data(),i.default(this).data()),s=this.getAttribute("data-slide-to");s&&(r.interval=!1),t._jQueryInterface.call(i.default(o),r),s&&i.default(o).data("bs.carousel").to(s),e.preventDefault()}}},r(t,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"Default",get:function(){return v}}]),t}();i.default(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",y._dataApiClickHandler),i.default(window).on("load.bs.carousel.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-ride="carousel"]')),e=0,n=t.length;e<n;e++){var o=i.default(t[e]);y._jQueryInterface.call(o,o.data())}})),i.default.fn[p]=y._jQueryInterface,i.default.fn[p].Constructor=y,i.default.fn[p].noConflict=function(){return i.default.fn[p]=g,y._jQueryInterface};var w="collapse",E=i.default.fn[w],T={toggle:!0,parent:""},C={toggle:"boolean",parent:"(string|element)"},S=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=[].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=[].slice.call(document.querySelectorAll('[data-toggle="collapse"]')),i=0,o=n.length;i<o;i++){var r=n[i],a=l.getSelectorFromElement(r),s=[].slice.call(document.querySelectorAll(a)).filter((function(e){return e===t}));null!==a&&s.length>0&&(this._selector=a,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var e=t.prototype;return e.toggle=function(){i.default(this._element).hasClass("show")?this.hide():this.show()},e.show=function(){var e,n,o=this;if(!this._isTransitioning&&!i.default(this._element).hasClass("show")&&(this._parent&&0===(e=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((function(t){return"string"==typeof o._config.parent?t.getAttribute("data-parent")===o._config.parent:t.classList.contains("collapse")}))).length&&(e=null),!(e&&(n=i.default(e).not(this._selector).data("bs.collapse"))&&n._isTransitioning))){var r=i.default.Event("show.bs.collapse");if(i.default(this._element).trigger(r),!r.isDefaultPrevented()){e&&(t._jQueryInterface.call(i.default(e).not(this._selector),"hide"),n||i.default(e).data("bs.collapse",null));var a=this._getDimension();i.default(this._element).removeClass("collapse").addClass("collapsing"),this._element.style[a]=0,this._triggerArray.length&&i.default(this._triggerArray).removeClass("collapsed").attr("aria-expanded",!0),this.setTransitioning(!0);var s="scroll"+(a[0].toUpperCase()+a.slice(1)),u=l.getTransitionDurationFromElement(this._element);i.default(this._element).one(l.TRANSITION_END,(function(){i.default(o._element).removeClass("collapsing").addClass("collapse show"),o._element.style[a]="",o.setTransitioning(!1),i.default(o._element).trigger("shown.bs.collapse")})).emulateTransitionEnd(u),this._element.style[a]=this._element[s]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&i.default(this._element).hasClass("show")){var e=i.default.Event("hide.bs.collapse");if(i.default(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",l.reflow(this._element),i.default(this._element).addClass("collapsing").removeClass("collapse show");var o=this._triggerArray.length;if(o>0)for(var r=0;r<o;r++){var a=this._triggerArray[r],s=l.getSelectorFromElement(a);if(null!==s)i.default([].slice.call(document.querySelectorAll(s))).hasClass("show")||i.default(a).addClass("collapsed").attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var u=l.getTransitionDurationFromElement(this._element);i.default(this._element).one(l.TRANSITION_END,(function(){t.setTransitioning(!1),i.default(t._element).removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")})).emulateTransitionEnd(u)}}},e.setTransitioning=function(t){this._isTransitioning=t},e.dispose=function(){i.default.removeData(this._element,"bs.collapse"),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(t){return(t=a({},T,t)).toggle=Boolean(t.toggle),l.typeCheckConfig(w,t,C),t},e._getDimension=function(){return i.default(this._element).hasClass("width")?"width":"height"},e._getParent=function(){var e,n=this;l.isElement(this._config.parent)?(e=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(e=this._config.parent[0])):e=document.querySelector(this._config.parent);var o='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',r=[].slice.call(e.querySelectorAll(o));return i.default(r).each((function(e,i){n._addAriaAndCollapsedClass(t._getTargetFromElement(i),[i])})),e},e._addAriaAndCollapsedClass=function(t,e){var n=i.default(t).hasClass("show");e.length&&i.default(e).toggleClass("collapsed",!n).attr("aria-expanded",n)},t._getTargetFromElement=function(t){var e=l.getSelectorFromElement(t);return e?document.querySelector(e):null},t._jQueryInterface=function(e){return this.each((function(){var n=i.default(this),o=n.data("bs.collapse"),r=a({},T,n.data(),"object"==typeof e&&e?e:{});if(!o&&r.toggle&&"string"==typeof e&&/show|hide/.test(e)&&(r.toggle=!1),o||(o=new t(this,r),n.data("bs.collapse",o)),"string"==typeof e){if("undefined"==typeof o[e])throw new TypeError('No method named "'+e+'"');o[e]()}}))},r(t,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"Default",get:function(){return T}}]),t}();i.default(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',(function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var e=i.default(this),n=l.getSelectorFromElement(this),o=[].slice.call(document.querySelectorAll(n));i.default(o).each((function(){var t=i.default(this),n=t.data("bs.collapse")?"toggle":e.data();S._jQueryInterface.call(t,n)}))})),i.default.fn[w]=S._jQueryInterface,i.default.fn[w].Constructor=S,i.default.fn[w].noConflict=function(){return i.default.fn[w]=E,S._jQueryInterface};var D="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,N=function(){for(var t=["Edge","Trident","Firefox"],e=0;e<t.length;e+=1)if(D&&navigator.userAgent.indexOf(t[e])>=0)return 1;return 0}();var k=D&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then((function(){e=!1,t()})))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout((function(){e=!1,t()}),N))}};function A(t){return t&&"[object Function]"==={}.toString.call(t)}function I(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function O(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function x(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=I(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:x(O(t))}function j(t){return t&&t.referenceNode?t.referenceNode:t}var L=D&&!(!window.MSInputMethodContext||!document.documentMode),P=D&&/MSIE 10/.test(navigator.userAgent);function F(t){return 11===t?L:10===t?P:L||P}function R(t){if(!t)return document.documentElement;for(var e=F(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===I(n,"position")?R(n):n:t?t.ownerDocument.documentElement:document.documentElement}function H(t){return null!==t.parentNode?H(t.parentNode):t}function M(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,r=document.createRange();r.setStart(i,0),r.setEnd(o,0);var a,s,l=r.commonAncestorContainer;if(t!==l&&e!==l||i.contains(o))return"BODY"===(s=(a=l).nodeName)||"HTML"!==s&&R(a.firstElementChild)!==a?R(l):l;var u=H(t);return u.host?M(u.host,e):M(t,H(e).host)}function B(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===e?"scrollTop":"scrollLeft",i=t.nodeName;if("BODY"===i||"HTML"===i){var o=t.ownerDocument.documentElement,r=t.ownerDocument.scrollingElement||o;return r[n]}return t[n]}function q(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=B(e,"top"),o=B(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}function Q(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"])+parseFloat(t["border"+i+"Width"])}function W(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],F(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function U(t){var e=t.body,n=t.documentElement,i=F(10)&&getComputedStyle(n);return{height:W("Height",e,n,i),width:W("Width",e,n,i)}}var V=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},Y=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),z=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},X=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t};function K(t){return X({},t,{right:t.left+t.width,bottom:t.top+t.height})}function G(t){var e={};try{if(F(10)){e=t.getBoundingClientRect();var n=B(t,"top"),i=B(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}else e=t.getBoundingClientRect()}catch(t){}var o={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},r="HTML"===t.nodeName?U(t.ownerDocument):{},a=r.width||t.clientWidth||o.width,s=r.height||t.clientHeight||o.height,l=t.offsetWidth-a,u=t.offsetHeight-s;if(l||u){var f=I(t);l-=Q(f,"x"),u-=Q(f,"y"),o.width-=l,o.height-=u}return K(o)}function $(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=F(10),o="HTML"===e.nodeName,r=G(t),a=G(e),s=x(t),l=I(e),u=parseFloat(l.borderTopWidth),f=parseFloat(l.borderLeftWidth);n&&o&&(a.top=Math.max(a.top,0),a.left=Math.max(a.left,0));var d=K({top:r.top-a.top-u,left:r.left-a.left-f,width:r.width,height:r.height});if(d.marginTop=0,d.marginLeft=0,!i&&o){var c=parseFloat(l.marginTop),h=parseFloat(l.marginLeft);d.top-=u-c,d.bottom-=u-c,d.left-=f-h,d.right-=f-h,d.marginTop=c,d.marginLeft=h}return(i&&!n?e.contains(s):e===s&&"BODY"!==s.nodeName)&&(d=q(d,e)),d}function J(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=$(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),a=e?0:B(n),s=e?0:B(n,"left"),l={top:a-i.top+i.marginTop,left:s-i.left+i.marginLeft,width:o,height:r};return K(l)}function Z(t){var e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===I(t,"position"))return!0;var n=O(t);return!!n&&Z(n)}function tt(t){if(!t||!t.parentElement||F())return document.documentElement;for(var e=t.parentElement;e&&"none"===I(e,"transform");)e=e.parentElement;return e||document.documentElement}function et(t,e,n,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},a=o?tt(t):M(t,j(e));if("viewport"===i)r=J(a,o);else{var s=void 0;"scrollParent"===i?"BODY"===(s=x(O(e))).nodeName&&(s=t.ownerDocument.documentElement):s="window"===i?t.ownerDocument.documentElement:i;var l=$(s,a,o);if("HTML"!==s.nodeName||Z(a))r=l;else{var u=U(t.ownerDocument),f=u.height,d=u.width;r.top+=l.top-l.marginTop,r.bottom=f+l.top,r.left+=l.left-l.marginLeft,r.right=d+l.left}}var c="number"==typeof(n=n||0);return r.left+=c?n:n.left||0,r.top+=c?n:n.top||0,r.right-=c?n:n.right||0,r.bottom-=c?n:n.bottom||0,r}function nt(t){return t.width*t.height}function it(t,e,n,i,o){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var a=et(n,i,r,o),s={top:{width:a.width,height:e.top-a.top},right:{width:a.right-e.right,height:a.height},bottom:{width:a.width,height:a.bottom-e.bottom},left:{width:e.left-a.left,height:a.height}},l=Object.keys(s).map((function(t){return X({key:t},s[t],{area:nt(s[t])})})).sort((function(t,e){return e.area-t.area})),u=l.filter((function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight})),f=u.length>0?u[0].key:l[0].key,d=t.split("-")[1];return f+(d?"-"+d:"")}function ot(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=i?tt(e):M(e,j(n));return $(n,o,i)}function rt(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),i=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function at(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,(function(t){return e[t]}))}function st(t,e,n){n=n.split("-")[0];var i=rt(t),o={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(n),a=r?"top":"left",s=r?"left":"top",l=r?"height":"width",u=r?"width":"height";return o[a]=e[a]+e[l]/2-i[l]/2,o[s]=n===s?e[s]-i[u]:e[at(s)],o}function lt(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function ut(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex((function(t){return t[e]===n}));var i=lt(t,(function(t){return t[e]===n}));return t.indexOf(i)}(t,"name",n))).forEach((function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&A(n)&&(e.offsets.popper=K(e.offsets.popper),e.offsets.reference=K(e.offsets.reference),e=n(e,t))})),e}function ft(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=ot(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=it(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=st(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=ut(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function dt(t,e){return t.some((function(t){var n=t.name;return t.enabled&&n===e}))}function ct(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<e.length;i++){var o=e[i],r=o?""+o+n:t;if("undefined"!=typeof document.body.style[r])return r}return null}function ht(){return this.state.isDestroyed=!0,dt(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[ct("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function pt(t){var e=t.ownerDocument;return e?e.defaultView:window}function mt(t,e,n,i){n.updateBound=i,pt(t).addEventListener("resize",n.updateBound,{passive:!0});var o=x(t);return function t(e,n,i,o){var r="BODY"===e.nodeName,a=r?e.ownerDocument.defaultView:e;a.addEventListener(n,i,{passive:!0}),r||t(x(a.parentNode),n,i,o),o.push(a)}(o,"scroll",n.updateBound,n.scrollParents),n.scrollElement=o,n.eventsEnabled=!0,n}function gt(){this.state.eventsEnabled||(this.state=mt(this.reference,this.options,this.state,this.scheduleUpdate))}function vt(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,pt(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach((function(t){t.removeEventListener("scroll",e.updateBound)})),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function _t(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function bt(t,e){Object.keys(e).forEach((function(n){var i="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&&_t(e[n])&&(i="px"),t.style[n]=e[n]+i}))}var yt=D&&/Firefox/i.test(navigator.userAgent);function wt(t,e,n){var i=lt(t,(function(t){return t.name===e})),o=!!i&&t.some((function(t){return t.name===n&&t.enabled&&t.order<i.order}));if(!o){var r="`"+e+"`",a="`"+n+"`";console.warn(a+" modifier is required by "+r+" modifier in order to work, be sure to include it before "+r+"!")}return o}var Et=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],Tt=Et.slice(3);function Ct(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Tt.indexOf(t),i=Tt.slice(n+1).concat(Tt.slice(0,n));return e?i.reverse():i}var St="flip",Dt="clockwise",Nt="counterclockwise";function kt(t,e,n,i){var o=[0,0],r=-1!==["right","left"].indexOf(i),a=t.split(/(\+|\-)/).map((function(t){return t.trim()})),s=a.indexOf(lt(a,(function(t){return-1!==t.search(/,|\s/)})));a[s]&&-1===a[s].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,u=-1!==s?[a.slice(0,s).concat([a[s].split(l)[0]]),[a[s].split(l)[1]].concat(a.slice(s+1))]:[a];return(u=u.map((function(t,i){var o=(1===i?!r:r)?"height":"width",a=!1;return t.reduce((function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,a=!0,t):a?(t[t.length-1]+=e,a=!1,t):t.concat(e)}),[]).map((function(t){return function(t,e,n,i){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+o[1],a=o[2];if(!r)return t;if(0===a.indexOf("%")){var s=void 0;switch(a){case"%p":s=n;break;case"%":case"%r":default:s=i}return K(s)[e]/100*r}if("vh"===a||"vw"===a){return("vh"===a?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r}return r}(t,o,e,n)}))}))).forEach((function(t,e){t.forEach((function(n,i){_t(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))}))})),o}var At={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var o=t.offsets,r=o.reference,a=o.popper,s=-1!==["bottom","top"].indexOf(n),l=s?"left":"top",u=s?"width":"height",f={start:z({},l,r[l]),end:z({},l,r[l]+r[u]-a[u])};t.offsets.popper=X({},a,f[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,o=t.offsets,r=o.popper,a=o.reference,s=i.split("-")[0],l=void 0;return l=_t(+n)?[+n,0]:kt(n,r,a,s),"left"===s?(r.top+=l[0],r.left-=l[1]):"right"===s?(r.top+=l[0],r.left+=l[1]):"top"===s?(r.left+=l[0],r.top-=l[1]):"bottom"===s&&(r.left+=l[0],r.top+=l[1]),t.popper=r,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var n=e.boundariesElement||R(t.instance.popper);t.instance.reference===n&&(n=R(n));var i=ct("transform"),o=t.instance.popper.style,r=o.top,a=o.left,s=o[i];o.top="",o.left="",o[i]="";var l=et(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);o.top=r,o.left=a,o[i]=s,e.boundaries=l;var u=e.priority,f=t.offsets.popper,d={primary:function(t){var n=f[t];return f[t]<l[t]&&!e.escapeWithReference&&(n=Math.max(f[t],l[t])),z({},t,n)},secondary:function(t){var n="right"===t?"left":"top",i=f[n];return f[t]>l[t]&&!e.escapeWithReference&&(i=Math.min(f[n],l[t]-("right"===t?f.width:f.height))),z({},n,i)}};return u.forEach((function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";f=X({},f,d[e](t))})),t.offsets.popper=f,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],r=Math.floor,a=-1!==["top","bottom"].indexOf(o),s=a?"right":"bottom",l=a?"left":"top",u=a?"width":"height";return n[s]<r(i[l])&&(t.offsets.popper[l]=r(i[l])-n[u]),n[l]>r(i[s])&&(t.offsets.popper[l]=r(i[s])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!wt(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],r=t.offsets,a=r.popper,s=r.reference,l=-1!==["left","right"].indexOf(o),u=l?"height":"width",f=l?"Top":"Left",d=f.toLowerCase(),c=l?"left":"top",h=l?"bottom":"right",p=rt(i)[u];s[h]-p<a[d]&&(t.offsets.popper[d]-=a[d]-(s[h]-p)),s[d]+p>a[h]&&(t.offsets.popper[d]+=s[d]+p-a[h]),t.offsets.popper=K(t.offsets.popper);var m=s[d]+s[u]/2-p/2,g=I(t.instance.popper),v=parseFloat(g["margin"+f]),_=parseFloat(g["border"+f+"Width"]),b=m-t.offsets.popper[d]-v-_;return b=Math.max(Math.min(a[u]-p,b),0),t.arrowElement=i,t.offsets.arrow=(z(n={},d,Math.round(b)),z(n,c,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(dt(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=et(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=at(i),r=t.placement.split("-")[1]||"",a=[];switch(e.behavior){case St:a=[i,o];break;case Dt:a=Ct(i);break;case Nt:a=Ct(i,!0);break;default:a=e.behavior}return a.forEach((function(s,l){if(i!==s||a.length===l+1)return t;i=t.placement.split("-")[0],o=at(i);var u=t.offsets.popper,f=t.offsets.reference,d=Math.floor,c="left"===i&&d(u.right)>d(f.left)||"right"===i&&d(u.left)<d(f.right)||"top"===i&&d(u.bottom)>d(f.top)||"bottom"===i&&d(u.top)<d(f.bottom),h=d(u.left)<d(n.left),p=d(u.right)>d(n.right),m=d(u.top)<d(n.top),g=d(u.bottom)>d(n.bottom),v="left"===i&&h||"right"===i&&p||"top"===i&&m||"bottom"===i&&g,_=-1!==["top","bottom"].indexOf(i),b=!!e.flipVariations&&(_&&"start"===r&&h||_&&"end"===r&&p||!_&&"start"===r&&m||!_&&"end"===r&&g),y=!!e.flipVariationsByContent&&(_&&"start"===r&&p||_&&"end"===r&&h||!_&&"start"===r&&g||!_&&"end"===r&&m),w=b||y;(c||v||w)&&(t.flipped=!0,(c||v)&&(i=a[l+1]),w&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=i+(r?"-"+r:""),t.offsets.popper=X({},t.offsets.popper,st(t.instance.popper,t.offsets.reference,t.placement)),t=ut(t.instance.modifiers,t,"flip"))})),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,o=i.popper,r=i.reference,a=-1!==["left","right"].indexOf(n),s=-1===["top","left"].indexOf(n);return o[a?"left":"top"]=r[n]-(s?o[a?"width":"height"]:0),t.placement=at(e),t.offsets.popper=K(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!wt(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=lt(t.instance.modifiers,(function(t){return"preventOverflow"===t.name})).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,i=e.y,o=t.offsets.popper,r=lt(t.instance.modifiers,(function(t){return"applyStyle"===t.name})).gpuAcceleration;void 0!==r&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var a=void 0!==r?r:e.gpuAcceleration,s=R(t.instance.popper),l=G(s),u={position:o.position},f=function(t,e){var n=t.offsets,i=n.popper,o=n.reference,r=Math.round,a=Math.floor,s=function(t){return t},l=r(o.width),u=r(i.width),f=-1!==["left","right"].indexOf(t.placement),d=-1!==t.placement.indexOf("-"),c=e?f||d||l%2==u%2?r:a:s,h=e?r:s;return{left:c(l%2==1&&u%2==1&&!d&&e?i.left-1:i.left),top:h(i.top),bottom:h(i.bottom),right:c(i.right)}}(t,window.devicePixelRatio<2||!yt),d="bottom"===n?"top":"bottom",c="right"===i?"left":"right",h=ct("transform"),p=void 0,m=void 0;if(m="bottom"===d?"HTML"===s.nodeName?-s.clientHeight+f.bottom:-l.height+f.bottom:f.top,p="right"===c?"HTML"===s.nodeName?-s.clientWidth+f.right:-l.width+f.right:f.left,a&&h)u[h]="translate3d("+p+"px, "+m+"px, 0)",u[d]=0,u[c]=0,u.willChange="transform";else{var g="bottom"===d?-1:1,v="right"===c?-1:1;u[d]=m*g,u[c]=p*v,u.willChange=d+", "+c}var _={"x-placement":t.placement};return t.attributes=X({},_,t.attributes),t.styles=X({},u,t.styles),t.arrowStyles=X({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return bt(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach((function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)})),t.arrowElement&&Object.keys(t.arrowStyles).length&&bt(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,o){var r=ot(o,e,t,n.positionFixed),a=it(n.placement,r,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",a),bt(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},It=function(){function t(e,n){var i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};V(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=k(this.update.bind(this)),this.options=X({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(X({},t.Defaults.modifiers,o.modifiers)).forEach((function(e){i.options.modifiers[e]=X({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(t){return X({name:t},i.options.modifiers[t])})).sort((function(t,e){return t.order-e.order})),this.modifiers.forEach((function(t){t.enabled&&A(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)})),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return Y(t,[{key:"update",value:function(){return ft.call(this)}},{key:"destroy",value:function(){return ht.call(this)}},{key:"enableEventListeners",value:function(){return gt.call(this)}},{key:"disableEventListeners",value:function(){return vt.call(this)}}]),t}();It.Utils=("undefined"!=typeof window?window:global).PopperUtils,It.placements=Et,It.Defaults=At;var Ot="dropdown",xt=i.default.fn[Ot],jt=new RegExp("38|40|27"),Lt={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},Pt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},Ft=function(){function t(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var e=t.prototype;return e.toggle=function(){if(!this._element.disabled&&!i.default(this._element).hasClass("disabled")){var e=i.default(this._menu).hasClass("show");t._clearMenus(),e||this.show(!0)}},e.show=function(e){if(void 0===e&&(e=!1),!(this._element.disabled||i.default(this._element).hasClass("disabled")||i.default(this._menu).hasClass("show"))){var n={relatedTarget:this._element},o=i.default.Event("show.bs.dropdown",n),r=t._getParentFromElement(this._element);if(i.default(r).trigger(o),!o.isDefaultPrevented()){if(!this._inNavbar&&e){if("undefined"==typeof It)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");var a=this._element;"parent"===this._config.reference?a=r:l.isElement(this._config.reference)&&(a=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(a=this._config.reference[0])),"scrollParent"!==this._config.boundary&&i.default(r).addClass("position-static"),this._popper=new It(a,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===i.default(r).closest(".navbar-nav").length&&i.default(document.body).children().on("mouseover",null,i.default.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),i.default(this._menu).toggleClass("show"),i.default(r).toggleClass("show").trigger(i.default.Event("shown.bs.dropdown",n))}}},e.hide=function(){if(!this._element.disabled&&!i.default(this._element).hasClass("disabled")&&i.default(this._menu).hasClass("show")){var e={relatedTarget:this._element},n=i.default.Event("hide.bs.dropdown",e),o=t._getParentFromElement(this._element);i.default(o).trigger(n),n.isDefaultPrevented()||(this._popper&&this._popper.destroy(),i.default(this._menu).toggleClass("show"),i.default(o).toggleClass("show").trigger(i.default.Event("hidden.bs.dropdown",e)))}},e.dispose=function(){i.default.removeData(this._element,"bs.dropdown"),i.default(this._element).off(".bs.dropdown"),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},e.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},e._addEventListeners=function(){var t=this;i.default(this._element).on("click.bs.dropdown",(function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}))},e._getConfig=function(t){return t=a({},this.constructor.Default,i.default(this._element).data(),t),l.typeCheckConfig(Ot,t,this.constructor.DefaultType),t},e._getMenuElement=function(){if(!this._menu){var e=t._getParentFromElement(this._element);e&&(this._menu=e.querySelector(".dropdown-menu"))}return this._menu},e._getPlacement=function(){var t=i.default(this._element.parentNode),e="bottom-start";return t.hasClass("dropup")?e=i.default(this._menu).hasClass("dropdown-menu-right")?"top-end":"top-start":t.hasClass("dropright")?e="right-start":t.hasClass("dropleft")?e="left-start":i.default(this._menu).hasClass("dropdown-menu-right")&&(e="bottom-end"),e},e._detectNavbar=function(){return i.default(this._element).closest(".navbar").length>0},e._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=a({},e.offsets,t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},e._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),a({},t,this._config.popperConfig)},t._jQueryInterface=function(e){return this.each((function(){var n=i.default(this).data("bs.dropdown");if(n||(n=new t(this,"object"==typeof e?e:null),i.default(this).data("bs.dropdown",n)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var n=[].slice.call(document.querySelectorAll('[data-toggle="dropdown"]')),o=0,r=n.length;o<r;o++){var a=t._getParentFromElement(n[o]),s=i.default(n[o]).data("bs.dropdown"),l={relatedTarget:n[o]};if(e&&"click"===e.type&&(l.clickEvent=e),s){var u=s._menu;if(i.default(a).hasClass("show")&&!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&9===e.which)&&i.default.contains(a,e.target))){var f=i.default.Event("hide.bs.dropdown",l);i.default(a).trigger(f),f.isDefaultPrevented()||("ontouchstart"in document.documentElement&&i.default(document.body).children().off("mouseover",null,i.default.noop),n[o].setAttribute("aria-expanded","false"),s._popper&&s._popper.destroy(),i.default(u).removeClass("show"),i.default(a).removeClass("show").trigger(i.default.Event("hidden.bs.dropdown",l)))}}}},t._getParentFromElement=function(t){var e,n=l.getSelectorFromElement(t);return n&&(e=document.querySelector(n)),e||t.parentNode},t._dataApiKeydownHandler=function(e){if(!(/input|textarea/i.test(e.target.tagName)?32===e.which||27!==e.which&&(40!==e.which&&38!==e.which||i.default(e.target).closest(".dropdown-menu").length):!jt.test(e.which))&&!this.disabled&&!i.default(this).hasClass("disabled")){var n=t._getParentFromElement(this),o=i.default(n).hasClass("show");if(o||27!==e.which){if(e.preventDefault(),e.stopPropagation(),!o||27===e.which||32===e.which)return 27===e.which&&i.default(n.querySelector('[data-toggle="dropdown"]')).trigger("focus"),void i.default(this).trigger("click");var r=[].slice.call(n.querySelectorAll(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)")).filter((function(t){return i.default(t).is(":visible")}));if(0!==r.length){var a=r.indexOf(e.target);38===e.which&&a>0&&a--,40===e.which&&a<r.length-1&&a++,a<0&&(a=0),r[a].focus()}}}},r(t,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"Default",get:function(){return Lt}},{key:"DefaultType",get:function(){return Pt}}]),t}();i.default(document).on("keydown.bs.dropdown.data-api",'[data-toggle="dropdown"]',Ft._dataApiKeydownHandler).on("keydown.bs.dropdown.data-api",".dropdown-menu",Ft._dataApiKeydownHandler).on("click.bs.dropdown.data-api keyup.bs.dropdown.data-api",Ft._clearMenus).on("click.bs.dropdown.data-api",'[data-toggle="dropdown"]',(function(t){t.preventDefault(),t.stopPropagation(),Ft._jQueryInterface.call(i.default(this),"toggle")})).on("click.bs.dropdown.data-api",".dropdown form",(function(t){t.stopPropagation()})),i.default.fn[Ot]=Ft._jQueryInterface,i.default.fn[Ot].Constructor=Ft,i.default.fn[Ot].noConflict=function(){return i.default.fn[Ot]=xt,Ft._jQueryInterface};var Rt=i.default.fn.modal,Ht={backdrop:!0,keyboard:!0,focus:!0,show:!0},Mt={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Bt=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=t.querySelector(".modal-dialog"),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}var e=t.prototype;return e.toggle=function(t){return this._isShown?this.hide():this.show(t)},e.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){i.default(this._element).hasClass("fade")&&(this._isTransitioning=!0);var n=i.default.Event("show.bs.modal",{relatedTarget:t});i.default(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),i.default(this._element).on("click.dismiss.bs.modal",'[data-dismiss="modal"]',(function(t){return e.hide(t)})),i.default(this._dialog).on("mousedown.dismiss.bs.modal",(function(){i.default(e._element).one("mouseup.dismiss.bs.modal",(function(t){i.default(t.target).is(e._element)&&(e._ignoreBackdropClick=!0)}))})),this._showBackdrop((function(){return e._showElement(t)})))}},e.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=i.default.Event("hide.bs.modal");if(i.default(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var o=i.default(this._element).hasClass("fade");if(o&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),i.default(document).off("focusin.bs.modal"),i.default(this._element).removeClass("show"),i.default(this._element).off("click.dismiss.bs.modal"),i.default(this._dialog).off("mousedown.dismiss.bs.modal"),o){var r=l.getTransitionDurationFromElement(this._element);i.default(this._element).one(l.TRANSITION_END,(function(t){return e._hideModal(t)})).emulateTransitionEnd(r)}else this._hideModal()}}},e.dispose=function(){[window,this._element,this._dialog].forEach((function(t){return i.default(t).off(".bs.modal")})),i.default(document).off("focusin.bs.modal"),i.default.removeData(this._element,"bs.modal"),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},e.handleUpdate=function(){this._adjustDialog()},e._getConfig=function(t){return t=a({},Ht,t),l.typeCheckConfig("modal",t,Mt),t},e._triggerBackdropTransition=function(){var t=this;if("static"===this._config.backdrop){var e=i.default.Event("hidePrevented.bs.modal");if(i.default(this._element).trigger(e),e.isDefaultPrevented())return;var n=this._element.scrollHeight>document.documentElement.clientHeight;n||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");var o=l.getTransitionDurationFromElement(this._dialog);i.default(this._element).off(l.TRANSITION_END),i.default(this._element).one(l.TRANSITION_END,(function(){t._element.classList.remove("modal-static"),n||i.default(t._element).one(l.TRANSITION_END,(function(){t._element.style.overflowY=""})).emulateTransitionEnd(t._element,o)})).emulateTransitionEnd(o),this._element.focus()}else this.hide()},e._showElement=function(t){var e=this,n=i.default(this._element).hasClass("fade"),o=this._dialog?this._dialog.querySelector(".modal-body"):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),i.default(this._dialog).hasClass("modal-dialog-scrollable")&&o?o.scrollTop=0:this._element.scrollTop=0,n&&l.reflow(this._element),i.default(this._element).addClass("show"),this._config.focus&&this._enforceFocus();var r=i.default.Event("shown.bs.modal",{relatedTarget:t}),a=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,i.default(e._element).trigger(r)};if(n){var s=l.getTransitionDurationFromElement(this._dialog);i.default(this._dialog).one(l.TRANSITION_END,a).emulateTransitionEnd(s)}else a()},e._enforceFocus=function(){var t=this;i.default(document).off("focusin.bs.modal").on("focusin.bs.modal",(function(e){document!==e.target&&t._element!==e.target&&0===i.default(t._element).has(e.target).length&&t._element.focus()}))},e._setEscapeEvent=function(){var t=this;this._isShown?i.default(this._element).on("keydown.dismiss.bs.modal",(function(e){t._config.keyboard&&27===e.which?(e.preventDefault(),t.hide()):t._config.keyboard||27!==e.which||t._triggerBackdropTransition()})):this._isShown||i.default(this._element).off("keydown.dismiss.bs.modal")},e._setResizeEvent=function(){var t=this;this._isShown?i.default(window).on("resize.bs.modal",(function(e){return t.handleUpdate(e)})):i.default(window).off("resize.bs.modal")},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){i.default(document.body).removeClass("modal-open"),t._resetAdjustments(),t._resetScrollbar(),i.default(t._element).trigger("hidden.bs.modal")}))},e._removeBackdrop=function(){this._backdrop&&(i.default(this._backdrop).remove(),this._backdrop=null)},e._showBackdrop=function(t){var e=this,n=i.default(this._element).hasClass("fade")?"fade":"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",n&&this._backdrop.classList.add(n),i.default(this._backdrop).appendTo(document.body),i.default(this._element).on("click.dismiss.bs.modal",(function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&e._triggerBackdropTransition()})),n&&l.reflow(this._backdrop),i.default(this._backdrop).addClass("show"),!t)return;if(!n)return void t();var o=l.getTransitionDurationFromElement(this._backdrop);i.default(this._backdrop).one(l.TRANSITION_END,t).emulateTransitionEnd(o)}else if(!this._isShown&&this._backdrop){i.default(this._backdrop).removeClass("show");var r=function(){e._removeBackdrop(),t&&t()};if(i.default(this._element).hasClass("fade")){var a=l.getTransitionDurationFromElement(this._backdrop);i.default(this._backdrop).one(l.TRANSITION_END,r).emulateTransitionEnd(a)}else r()}else t&&t()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},e._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){var e=[].slice.call(document.querySelectorAll(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top")),n=[].slice.call(document.querySelectorAll(".sticky-top"));i.default(e).each((function(e,n){var o=n.style.paddingRight,r=i.default(n).css("padding-right");i.default(n).data("padding-right",o).css("padding-right",parseFloat(r)+t._scrollbarWidth+"px")})),i.default(n).each((function(e,n){var o=n.style.marginRight,r=i.default(n).css("margin-right");i.default(n).data("margin-right",o).css("margin-right",parseFloat(r)-t._scrollbarWidth+"px")}));var o=document.body.style.paddingRight,r=i.default(document.body).css("padding-right");i.default(document.body).data("padding-right",o).css("padding-right",parseFloat(r)+this._scrollbarWidth+"px")}i.default(document.body).addClass("modal-open")},e._resetScrollbar=function(){var t=[].slice.call(document.querySelectorAll(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top"));i.default(t).each((function(t,e){var n=i.default(e).data("padding-right");i.default(e).removeData("padding-right"),e.style.paddingRight=n||""}));var e=[].slice.call(document.querySelectorAll(".sticky-top"));i.default(e).each((function(t,e){var n=i.default(e).data("margin-right");"undefined"!=typeof n&&i.default(e).css("margin-right",n).removeData("margin-right")}));var n=i.default(document.body).data("padding-right");i.default(document.body).removeData("padding-right"),document.body.style.paddingRight=n||""},e._getScrollbarWidth=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t._jQueryInterface=function(e,n){return this.each((function(){var o=i.default(this).data("bs.modal"),r=a({},Ht,i.default(this).data(),"object"==typeof e&&e?e:{});if(o||(o=new t(this,r),i.default(this).data("bs.modal",o)),"string"==typeof e){if("undefined"==typeof o[e])throw new TypeError('No method named "'+e+'"');o[e](n)}else r.show&&o.show(n)}))},r(t,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"Default",get:function(){return Ht}}]),t}();i.default(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',(function(t){var e,n=this,o=l.getSelectorFromElement(this);o&&(e=document.querySelector(o));var r=i.default(e).data("bs.modal")?"toggle":a({},i.default(e).data(),i.default(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var s=i.default(e).one("show.bs.modal",(function(t){t.isDefaultPrevented()||s.one("hidden.bs.modal",(function(){i.default(n).is(":visible")&&n.focus()}))}));Bt._jQueryInterface.call(i.default(e),r,this)})),i.default.fn.modal=Bt._jQueryInterface,i.default.fn.modal.Constructor=Bt,i.default.fn.modal.noConflict=function(){return i.default.fn.modal=Rt,Bt._jQueryInterface};var qt=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Qt={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Wt=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,Ut=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;function Vt(t,e,n){if(0===t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),r=[].slice.call(i.body.querySelectorAll("*")),a=function(t,n){var i=r[t],a=i.nodeName.toLowerCase();if(-1===o.indexOf(i.nodeName.toLowerCase()))return i.parentNode.removeChild(i),"continue";var s=[].slice.call(i.attributes),l=[].concat(e["*"]||[],e[a]||[]);s.forEach((function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===qt.indexOf(n)||Boolean(t.nodeValue.match(Wt)||t.nodeValue.match(Ut));for(var i=e.filter((function(t){return t instanceof RegExp})),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1})(t,l)||i.removeAttribute(t.nodeName)}))},s=0,l=r.length;s<l;s++)a(s);return i.body.innerHTML}var Yt="tooltip",zt=i.default.fn[Yt],Xt=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Kt=["sanitize","whiteList","sanitizeFn"],Gt={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object",popperConfig:"(null|object)"},$t={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Jt={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Qt,popperConfig:null},Zt={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},te=function(){function t(t,e){if("undefined"==typeof It)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var e=t.prototype;return e.enable=function(){this._isEnabled=!0},e.disable=function(){this._isEnabled=!1},e.toggleEnabled=function(){this._isEnabled=!this._isEnabled},e.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=i.default(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),i.default(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(i.default(this.getTipElement()).hasClass("show"))return void this._leave(null,this);this._enter(null,this)}},e.dispose=function(){clearTimeout(this._timeout),i.default.removeData(this.element,this.constructor.DATA_KEY),i.default(this.element).off(this.constructor.EVENT_KEY),i.default(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&i.default(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},e.show=function(){var t=this;if("none"===i.default(this.element).css("display"))throw new Error("Please use show on visible elements");var e=i.default.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){i.default(this.element).trigger(e);var n=l.findShadowRoot(this.element),o=i.default.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(e.isDefaultPrevented()||!o)return;var r=this.getTipElement(),a=l.getUID(this.constructor.NAME);r.setAttribute("id",a),this.element.setAttribute("aria-describedby",a),this.setContent(),this.config.animation&&i.default(r).addClass("fade");var s="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,u=this._getAttachment(s);this.addAttachmentClass(u);var f=this._getContainer();i.default(r).data(this.constructor.DATA_KEY,this),i.default.contains(this.element.ownerDocument.documentElement,this.tip)||i.default(r).appendTo(f),i.default(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new It(this.element,r,this._getPopperConfig(u)),i.default(r).addClass("show"),"ontouchstart"in document.documentElement&&i.default(document.body).children().on("mouseover",null,i.default.noop);var d=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,i.default(t.element).trigger(t.constructor.Event.SHOWN),"out"===e&&t._leave(null,t)};if(i.default(this.tip).hasClass("fade")){var c=l.getTransitionDurationFromElement(this.tip);i.default(this.tip).one(l.TRANSITION_END,d).emulateTransitionEnd(c)}else d()}},e.hide=function(t){var e=this,n=this.getTipElement(),o=i.default.Event(this.constructor.Event.HIDE),r=function(){"show"!==e._hoverState&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),i.default(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(i.default(this.element).trigger(o),!o.isDefaultPrevented()){if(i.default(n).removeClass("show"),"ontouchstart"in document.documentElement&&i.default(document.body).children().off("mouseover",null,i.default.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,i.default(this.tip).hasClass("fade")){var a=l.getTransitionDurationFromElement(n);i.default(n).one(l.TRANSITION_END,r).emulateTransitionEnd(a)}else r();this._hoverState=""}},e.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},e.isWithContent=function(){return Boolean(this.getTitle())},e.addAttachmentClass=function(t){i.default(this.getTipElement()).addClass("bs-tooltip-"+t)},e.getTipElement=function(){return this.tip=this.tip||i.default(this.config.template)[0],this.tip},e.setContent=function(){var t=this.getTipElement();this.setElementContent(i.default(t.querySelectorAll(".tooltip-inner")),this.getTitle()),i.default(t).removeClass("fade show")},e.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=Vt(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?i.default(e).parent().is(t)||t.empty().append(e):t.text(i.default(e).text())},e.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},e._getPopperConfig=function(t){var e=this;return a({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},e._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=a({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},e._getContainer=function(){return!1===this.config.container?document.body:l.isElement(this.config.container)?i.default(this.config.container):i.default(document).find(this.config.container)},e._getAttachment=function(t){return $t[t.toUpperCase()]},e._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)i.default(t.element).on(t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n="hover"===e?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,o="hover"===e?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;i.default(t.element).on(n,t.config.selector,(function(e){return t._enter(e)})).on(o,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},i.default(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=a({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},e._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},e._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||i.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),i.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),i.default(e.getTipElement()).hasClass("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){"show"===e._hoverState&&e.show()}),e.config.delay.show):e.show())},e._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||i.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),i.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){"out"===e._hoverState&&e.hide()}),e.config.delay.hide):e.hide())},e._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},e._getConfig=function(t){var e=i.default(this.element).data();return Object.keys(e).forEach((function(t){-1!==Kt.indexOf(t)&&delete e[t]})),"number"==typeof(t=a({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),l.typeCheckConfig(Yt,t,this.constructor.DefaultType),t.sanitize&&(t.template=Vt(t.template,t.whiteList,t.sanitizeFn)),t},e._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},e._cleanTipClass=function(){var t=i.default(this.getTipElement()),e=t.attr("class").match(Xt);null!==e&&e.length&&t.removeClass(e.join(""))},e._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},e._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(i.default(t).removeClass("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t._jQueryInterface=function(e){return this.each((function(){var n=i.default(this),o=n.data("bs.tooltip"),r="object"==typeof e&&e;if((o||!/dispose|hide/.test(e))&&(o||(o=new t(this,r),n.data("bs.tooltip",o)),"string"==typeof e)){if("undefined"==typeof o[e])throw new TypeError('No method named "'+e+'"');o[e]()}}))},r(t,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"Default",get:function(){return Jt}},{key:"NAME",get:function(){return Yt}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return Zt}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Gt}}]),t}();i.default.fn[Yt]=te._jQueryInterface,i.default.fn[Yt].Constructor=te,i.default.fn[Yt].noConflict=function(){return i.default.fn[Yt]=zt,te._jQueryInterface};var ee="popover",ne=i.default.fn[ee],ie=new RegExp("(^|\\s)bs-popover\\S+","g"),oe=a({},te.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),re=a({},te.DefaultType,{content:"(string|element|function)"}),ae={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},se=function(t){var e,n;function o(){return t.apply(this,arguments)||this}n=t,(e=o).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n;var a=o.prototype;return a.isWithContent=function(){return this.getTitle()||this._getContent()},a.addAttachmentClass=function(t){i.default(this.getTipElement()).addClass("bs-popover-"+t)},a.getTipElement=function(){return this.tip=this.tip||i.default(this.config.template)[0],this.tip},a.setContent=function(){var t=i.default(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(".popover-body"),e),t.removeClass("fade show")},a._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},a._cleanTipClass=function(){var t=i.default(this.getTipElement()),e=t.attr("class").match(ie);null!==e&&e.length>0&&t.removeClass(e.join(""))},o._jQueryInterface=function(t){return this.each((function(){var e=i.default(this).data("bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n),i.default(this).data("bs.popover",e)),"string"==typeof t)){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},r(o,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"Default",get:function(){return oe}},{key:"NAME",get:function(){return ee}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return ae}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return re}}]),o}(te);i.default.fn[ee]=se._jQueryInterface,i.default.fn[ee].Constructor=se,i.default.fn[ee].noConflict=function(){return i.default.fn[ee]=ne,se._jQueryInterface};var le="scrollspy",ue=i.default.fn[le],fe={offset:10,method:"auto",target:""},de={offset:"number",method:"string",target:"(string|element)"},ce=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,i.default(this._scrollElement).on("scroll.bs.scrollspy",(function(t){return n._process(t)})),this.refresh(),this._process()}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":"position",n="auto"===this._config.method?e:this._config.method,o="position"===n?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(t){var e,r=l.getSelectorFromElement(t);if(r&&(e=document.querySelector(r)),e){var a=e.getBoundingClientRect();if(a.width||a.height)return[i.default(e)[n]().top+o,r]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},e.dispose=function(){i.default.removeData(this._element,"bs.scrollspy"),i.default(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=a({},fe,"object"==typeof t&&t?t:{})).target&&l.isElement(t.target)){var e=i.default(t.target).attr("id");e||(e=l.getUID(le),i.default(t.target).attr("id",e)),t.target="#"+e}return l.typeCheckConfig(le,t,de),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},e._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",").map((function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'})),n=i.default([].slice.call(document.querySelectorAll(e.join(","))));n.hasClass("dropdown-item")?(n.closest(".dropdown").find(".dropdown-toggle").addClass("active"),n.addClass("active")):(n.addClass("active"),n.parents(".nav, .list-group").prev(".nav-link, .list-group-item").addClass("active"),n.parents(".nav, .list-group").prev(".nav-item").children(".nav-link").addClass("active")),i.default(this._scrollElement).trigger("activate.bs.scrollspy",{relatedTarget:t})},e._clear=function(){[].slice.call(document.querySelectorAll(this._selector)).filter((function(t){return t.classList.contains("active")})).forEach((function(t){return t.classList.remove("active")}))},t._jQueryInterface=function(e){return this.each((function(){var n=i.default(this).data("bs.scrollspy");if(n||(n=new t(this,"object"==typeof e&&e),i.default(this).data("bs.scrollspy",n)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},r(t,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"Default",get:function(){return fe}}]),t}();i.default(window).on("load.bs.scrollspy.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-spy="scroll"]')),e=t.length;e--;){var n=i.default(t[e]);ce._jQueryInterface.call(n,n.data())}})),i.default.fn[le]=ce._jQueryInterface,i.default.fn[le].Constructor=ce,i.default.fn[le].noConflict=function(){return i.default.fn[le]=ue,ce._jQueryInterface};var he=i.default.fn.tab,pe=function(){function t(t){this._element=t}var e=t.prototype;return e.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&i.default(this._element).hasClass("active")||i.default(this._element).hasClass("disabled"))){var e,n,o=i.default(this._element).closest(".nav, .list-group")[0],r=l.getSelectorFromElement(this._element);if(o){var a="UL"===o.nodeName||"OL"===o.nodeName?"> li > .active":".active";n=(n=i.default.makeArray(i.default(o).find(a)))[n.length-1]}var s=i.default.Event("hide.bs.tab",{relatedTarget:this._element}),u=i.default.Event("show.bs.tab",{relatedTarget:n});if(n&&i.default(n).trigger(s),i.default(this._element).trigger(u),!u.isDefaultPrevented()&&!s.isDefaultPrevented()){r&&(e=document.querySelector(r)),this._activate(this._element,o);var f=function(){var e=i.default.Event("hidden.bs.tab",{relatedTarget:t._element}),o=i.default.Event("shown.bs.tab",{relatedTarget:n});i.default(n).trigger(e),i.default(t._element).trigger(o)};e?this._activate(e,e.parentNode,f):f()}}},e.dispose=function(){i.default.removeData(this._element,"bs.tab"),this._element=null},e._activate=function(t,e,n){var o=this,r=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?i.default(e).children(".active"):i.default(e).find("> li > .active"))[0],a=n&&r&&i.default(r).hasClass("fade"),s=function(){return o._transitionComplete(t,r,n)};if(r&&a){var u=l.getTransitionDurationFromElement(r);i.default(r).removeClass("show").one(l.TRANSITION_END,s).emulateTransitionEnd(u)}else s()},e._transitionComplete=function(t,e,n){if(e){i.default(e).removeClass("active");var o=i.default(e.parentNode).find("> .dropdown-menu .active")[0];o&&i.default(o).removeClass("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(i.default(t).addClass("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),l.reflow(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&i.default(t.parentNode).hasClass("dropdown-menu")){var r=i.default(t).closest(".dropdown")[0];if(r){var a=[].slice.call(r.querySelectorAll(".dropdown-toggle"));i.default(a).addClass("active")}t.setAttribute("aria-expanded",!0)}n&&n()},t._jQueryInterface=function(e){return this.each((function(){var n=i.default(this),o=n.data("bs.tab");if(o||(o=new t(this),n.data("bs.tab",o)),"string"==typeof e){if("undefined"==typeof o[e])throw new TypeError('No method named "'+e+'"');o[e]()}}))},r(t,null,[{key:"VERSION",get:function(){return"4.5.3"}}]),t}();i.default(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),pe._jQueryInterface.call(i.default(this),"show")})),i.default.fn.tab=pe._jQueryInterface,i.default.fn.tab.Constructor=pe,i.default.fn.tab.noConflict=function(){return i.default.fn.tab=he,pe._jQueryInterface};var me=i.default.fn.toast,ge={animation:"boolean",autohide:"boolean",delay:"number"},ve={animation:!0,autohide:!0,delay:500},_e=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var e=t.prototype;return e.show=function(){var t=this,e=i.default.Event("show.bs.toast");if(i.default(this._element).trigger(e),!e.isDefaultPrevented()){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var n=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),i.default(t._element).trigger("shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),l.reflow(this._element),this._element.classList.add("showing"),this._config.animation){var o=l.getTransitionDurationFromElement(this._element);i.default(this._element).one(l.TRANSITION_END,n).emulateTransitionEnd(o)}else n()}},e.hide=function(){if(this._element.classList.contains("show")){var t=i.default.Event("hide.bs.toast");i.default(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},e.dispose=function(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),i.default(this._element).off("click.dismiss.bs.toast"),i.default.removeData(this._element,"bs.toast"),this._element=null,this._config=null},e._getConfig=function(t){return t=a({},ve,i.default(this._element).data(),"object"==typeof t&&t?t:{}),l.typeCheckConfig("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;i.default(this._element).on("click.dismiss.bs.toast",'[data-dismiss="toast"]',(function(){return t.hide()}))},e._close=function(){var t=this,e=function(){t._element.classList.add("hide"),i.default(t._element).trigger("hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var n=l.getTransitionDurationFromElement(this._element);i.default(this._element).one(l.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},e._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t._jQueryInterface=function(e){return this.each((function(){var n=i.default(this),o=n.data("bs.toast");if(o||(o=new t(this,"object"==typeof e&&e),n.data("bs.toast",o)),"string"==typeof e){if("undefined"==typeof o[e])throw new TypeError('No method named "'+e+'"');o[e](this)}}))},r(t,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"DefaultType",get:function(){return ge}},{key:"Default",get:function(){return ve}}]),t}();i.default.fn.toast=_e._jQueryInterface,i.default.fn.toast.Constructor=_e,i.default.fn.toast.noConflict=function(){return i.default.fn.toast=me,_e._jQueryInterface},t.Alert=d,t.Button=h,t.Carousel=y,t.Collapse=S,t.Dropdown=Ft,t.Modal=Bt,t.Popover=se,t.Scrollspy=ce,t.Tab=pe,t.Toast=_e,t.Tooltip=te,t.Util=l,Object.defineProperty(t,"__esModule",{value:!0})})); //# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js.map b/npm_assets/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js.map index 6fd7db178f..4146d43c2a 100644 --- a/npm_assets/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js.map +++ b/npm_assets/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tools/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"names":["transitionEndEmulator","duration","_this","this","called","$","one","Util","TRANSITION_END","setTimeout","triggerTransitionEnd","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","err","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","obj","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","call","expectedTypes","value","valueType","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","fn","jquery","emulateTransitionEnd","event","special","bindType","delegateType","handle","target","is","handleObj","handler","apply","arguments","NAME","JQUERY_NO_CONFLICT","Alert","_element","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","Event","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","Button","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","classList","contains","activeElement","focus","hasAttribute","setAttribute","toggleClass","button","initialButton","inputBtn","tagName","window","buttons","slice","querySelectorAll","i","len","length","add","EVENT_KEY","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_extends","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","originalEvent","pointerType","clientX","touches","end","clearTimeout","e","move","which","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","children","addClass","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","nextElementInterval","parseInt","defaultInterval","CLASS_NAME_ACTIVE","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","scrollSize","CLASS_NAME_COLLAPSE","getBoundingClientRect","triggerArrayLength","isTransitioning","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","selectors","$target","isBrowser","timeoutDuration","longerTimeoutBrowsers","userAgent","debounce","Promise","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","side","undefined","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","height","width","classCallCheck","instance","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","key","protoProps","staticProps","assign","source","getClientRect","offsets","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","offset","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","_ref","computeAutoPlacement","placement","refRect","rects","sortedAreas","keys","map","area","sort","a","b","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","state","commonOffsetParent","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","runModifiers","modifiers","ends","prop","findIndex","cur","forEach","console","warn","enabled","update","isDestroyed","arrowStyles","attributes","flipped","options","positionFixed","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toCheck","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","setupEventListeners","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","removeEventListener","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","concat","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","shift","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","x-placement","applyStyle","onLoad","modifierOptions","Popper","requestAnimationFrame","Utils","global","PopperUtils","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","boundary","display","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","referenceElement","_getPopperConfig","noop","hideEvent","stopPropagation","constructor","_getPlacement","$parentDropdown","_getOffset","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","item","EVENT_CLICK_DATA_API","backdrop","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","defaultPrevented","isModalOverflowing","scrollHeight","modalTransitionDuration","modalBody","ELEMENT_NODE","appendChild","_enforceFocus","shownEvent","transitionComplete","_this5","has","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","calculatedMargin","elements","margin","scrollDiv","scrollbarWidth","_this11","uriAttrs","DefaultWhitelist","*","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","_loop","elName","attributeList","whitelistedAttributes","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","allowedAttribute","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","container","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","DATA_KEY","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","CLASS_NAME_FADE","content","text","empty","append","_handlePopperPlacementChange","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","$tip","tabClass","join","popperData","initConfigAnimation","Popover","_getContent","method","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","$link","parents","SELECTOR_NAV_LINKS","scrollSpys","$spy","Tab","previous","listElement","itemSelector","makeArray","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","autohide","Toast","_clearTimeout","_close"],"mappings":";;;;;wwBAyCA,SAASA,EAAsBC,GAAU,IAAAC,EAAAC,KACnCC,GAAS,EAYb,OAVAC,EAAEF,MAAMG,IAAIC,EAAKC,gBAAgB,WAC/BJ,GAAS,KAGXK,YAAW,WACJL,GACHG,EAAKG,qBAAqBR,KAE3BD,GAEIE,SAcHI,EAAO,CACXC,eAAgB,kBAEhBG,OAHW,SAGJC,GACL,GAEEA,MA1DU,IA0DGC,KAAKC,gBACXC,SAASC,eAAeJ,IACjC,OAAOA,GAGTK,uBAXW,SAWYC,GACrB,IAAIC,EAAWD,EAAQE,aAAa,eAEpC,IAAKD,GAAyB,MAAbA,EAAkB,CACjC,IAAME,EAAWH,EAAQE,aAAa,QACtCD,EAAWE,GAAyB,MAAbA,EAAmBA,EAASC,OAAS,GAG9D,IACE,OAAOP,SAASQ,cAAcJ,GAAYA,EAAW,KACrD,MAAOK,GACP,OAAO,OAIXC,iCA1BW,SA0BsBP,GAC/B,IAAKA,EACH,OAAO,EAIT,IAAIQ,EAAqBrB,EAAEa,GAASS,IAAI,uBACpCC,EAAkBvB,EAAEa,GAASS,IAAI,oBAE/BE,EAA0BC,WAAWJ,GACrCK,EAAuBD,WAAWF,GAGxC,OAAKC,GAA4BE,GAKjCL,EAAqBA,EAAmBM,MAAM,KAAK,GACnDJ,EAAkBA,EAAgBI,MAAM,KAAK,GAhGjB,KAkGpBF,WAAWJ,GAAsBI,WAAWF,KAP3C,GAUXK,OAlDW,SAkDJf,GACL,OAAOA,EAAQgB,cAGjBxB,qBAtDW,SAsDUQ,GACnBb,EAAEa,GAASiB,QA5GQ,kBAgHrBC,sBA3DW,WA4DT,OAAOC,QAjHY,kBAoHrBC,UA/DW,SA+DDC,GACR,OAAQA,EAAI,IAAMA,GAAKC,UAGzBC,gBAnEW,SAmEKC,EAAeC,EAAQC,GACrC,IAAK,IAAMC,KAAYD,EACrB,GAAIE,OAAOC,UAAUC,eAAeC,KAAKL,EAAaC,GAAW,CAC/D,IAAMK,EAAgBN,EAAYC,GAC5BM,EAAgBR,EAAOE,GACvBO,EAAgBD,GAAS5C,EAAK+B,UAAUa,GAC1C,UAxHE,QADEZ,EAyHeY,IAxHM,oBAARZ,EACzB,GAAUA,EAGL,GAAGc,SAASJ,KAAKV,GAAKe,MAAM,eAAe,GAAGC,cAsH/C,IAAK,IAAIC,OAAON,GAAeO,KAAKL,GAClC,MAAM,IAAIM,MACLhB,EAAciB,cAAdjB,aACQG,EADX,oBACuCO,EADpCV,wBAEmBQ,EAFtB,MA7HZ,IAAgBX,GAqIdqB,eArFW,SAqFI1C,GACb,IAAKH,SAAS8C,gBAAgBC,aAC5B,OAAO,KAIT,GAAmC,mBAAxB5C,EAAQ6C,YAA4B,CAC7C,IAAMC,EAAO9C,EAAQ6C,cACrB,OAAOC,aAAgBC,WAAaD,EAAO,KAG7C,OAAI9C,aAAmB+C,WACd/C,EAIJA,EAAQgD,WAIN3D,EAAKqD,eAAe1C,EAAQgD,YAH1B,MAMXC,gBA5GW,WA6GT,GAAiB,oBAAN9D,EACT,MAAM,IAAI+D,UAAU,kGAGtB,IAAMC,EAAUhE,EAAEiE,GAAGC,OAAOvC,MAAM,KAAK,GAAGA,MAAM,KAOhD,GAAIqC,EAAQ,GALI,GAKYA,EAAQ,GAJnB,GAFA,IAMoCA,EAAQ,IAJ5C,IAI+DA,EAAQ,IAAmBA,EAAQ,GAHlG,GAGmHA,EAAQ,IAF3H,EAGf,MAAM,IAAIX,MAAM,iFAKtBnD,EAAK4D,kBAxIH9D,EAAEiE,GAAGE,qBAAuBxE,EAC5BK,EAAEoE,MAAMC,QAAQnE,EAAKC,gBA9Bd,CACLmE,SAfmB,gBAgBnBC,aAhBmB,gBAiBnBC,OAHK,SAGEJ,GACL,GAAIpE,EAAEoE,EAAMK,QAAQC,GAAG5E,MACrB,OAAOsE,EAAMO,UAAUC,QAAQC,MAAM/E,KAAMgF,aClBnD,IAAMC,EAAsB,QAKtBC,EAAsBhF,EAAEiE,GAAGc,GAkB3BE,EAAAA,WACJ,SAAAA,EAAYpE,GACVf,KAAKoF,SAAWrE,6BAWlBsE,MAAA,SAAMtE,GACJ,IAAIuE,EAActF,KAAKoF,SACnBrE,IACFuE,EAActF,KAAKuF,gBAAgBxE,IAGjBf,KAAKwF,mBAAmBF,GAE5BG,sBAIhBzF,KAAK0F,eAAeJ,MAGtBK,QAAA,WACEzF,EAAE0F,WAAW5F,KAAKoF,SAlDM,YAmDxBpF,KAAKoF,SAAW,QAKlBG,gBAAA,SAAgBxE,GACd,IAAMC,EAAWZ,EAAKU,uBAAuBC,GACzC8E,GAAa,EAUjB,OARI7E,IACF6E,EAASjF,SAASQ,cAAcJ,IAG7B6E,IACHA,EAAS3F,EAAEa,GAAS+E,QAAX,UAA2C,IAG/CD,KAGTL,mBAAA,SAAmBzE,GACjB,IAAMgF,EAAa7F,EAAE8F,MAjER,kBAoEb,OADA9F,EAAEa,GAASiB,QAAQ+D,GACZA,KAGTL,eAAA,SAAe3E,GAAS,IAAAhB,EAAAC,KAGtB,GAFAE,EAAEa,GAASkF,YAlEU,QAoEhB/F,EAAEa,GAASmF,SArEK,QAqErB,CAKA,IAAM3E,EAAqBnB,EAAKkB,iCAAiCP,GAEjEb,EAAEa,GACCZ,IAAIC,EAAKC,gBAAgB,SAACiE,GAAD,OAAWvE,EAAKoG,gBAAgBpF,EAASuD,MAClED,qBAAqB9C,QARtBvB,KAAKmG,gBAAgBpF,MAWzBoF,gBAAA,SAAgBpF,GACdb,EAAEa,GACCqF,SACApE,QAxFW,mBAyFXqE,YAKEC,iBAAP,SAAwB9D,GACtB,OAAOxC,KAAKuG,MAAK,WACf,IAAMC,EAAWtG,EAAEF,MACfyG,EAAaD,EAASC,KAzGJ,YA2GjBA,IACHA,EAAO,IAAItB,EAAMnF,MACjBwG,EAASC,KA7GW,WA6GIA,IAGX,UAAXjE,GACFiE,EAAKjE,GAAQxC,YAKZ0G,eAAP,SAAsBC,GACpB,OAAO,SAAUrC,GACXA,GACFA,EAAMsC,iBAGRD,EAActB,MAAMrF,gDA/FtB,MA9BwB,cAsBtBmF,GAkHNjF,EAAEU,UAAUiG,GA9Hc,0BAJD,yBAqIvB1B,EAAMuB,eAAe,IAAIvB,IAS3BjF,EAAEiE,GAAGc,GAAoBE,EAAMmB,iBAC/BpG,EAAEiE,GAAGc,GAAM6B,YAAc3B,EACzBjF,EAAEiE,GAAGc,GAAM8B,WAAc,WAEvB,OADA7G,EAAEiE,GAAGc,GAAQC,EACNC,EAAMmB,kBC1Jf,IAKMpB,EAAsBhF,EAAEiE,GAAF,OAyBtB6C,EAAAA,WACJ,SAAAA,EAAYjG,GACVf,KAAKoF,SAAWrE,6BAWlBkG,OAAA,WACE,IAAIC,GAAqB,EACrBC,GAAiB,EACf7B,EAAcpF,EAAEF,KAAKoF,UAAUU,QAlCH,2BAoChC,GAEF,GAAIR,EAAa,CACf,IAAM8B,EAAQpH,KAAKoF,SAAShE,cApCI,8BAsChC,GAAIgG,EAAO,CACT,GAAmB,UAAfA,EAAMC,KACR,GAAID,EAAME,SACRtH,KAAKoF,SAASmC,UAAUC,SAjDV,UAkDdN,GAAqB,MAChB,CACL,IAAMO,EAAgBnC,EAAYlE,cA3CR,WA6CtBqG,GACFvH,EAAEuH,GAAexB,YAvDL,UA4DdiB,IAEiB,aAAfE,EAAMC,MAAsC,UAAfD,EAAMC,OACrCD,EAAME,SAAWtH,KAAKoF,SAASmC,UAAUC,SA/D3B,WAiEhBtH,EAAEkH,GAAOpF,QAAQ,WAGnBoF,EAAMM,QACNP,GAAiB,GAIfnH,KAAKoF,SAASuC,aAAa,aAAe3H,KAAKoF,SAASmC,UAAUC,SAAS,cAC3EL,GACFnH,KAAKoF,SAASwC,aAAa,gBACxB5H,KAAKoF,SAASmC,UAAUC,SA5ET,WA+EhBN,GACFhH,EAAEF,KAAKoF,UAAUyC,YAhFC,cAqFxBlC,QAAA,WACEzF,EAAE0F,WAAW5F,KAAKoF,SA3FM,aA4FxBpF,KAAKoF,SAAW,QAKXkB,iBAAP,SAAwB9D,GACtB,OAAOxC,KAAKuG,MAAK,WACf,IAAIE,EAAOvG,EAAEF,MAAMyG,KAnGG,aAqGjBA,IACHA,EAAO,IAAIO,EAAOhH,MAClBE,EAAEF,MAAMyG,KAvGY,YAuGGA,IAGV,WAAXjE,GACFiE,EAAKjE,iDAvET,MArCwB,cA6BtBwE,GA2FN9G,EAAEU,UACCiG,GAvGuB,2BARY,2BA+GmB,SAACvC,GACtD,IAAIwD,EAASxD,EAAMK,OACboD,EAAgBD,EAMtB,GAJK5H,EAAE4H,GAAQ5B,SAtHO,SAuHpB4B,EAAS5H,EAAE4H,GAAQhC,QA9Ga,QA8GY,KAGzCgC,GAAUA,EAAOH,aAAa,aAAeG,EAAOP,UAAUC,SAAS,YAC1ElD,EAAMsC,qBACD,CACL,IAAMoB,EAAWF,EAAO1G,cAtHQ,8BAwHhC,GAAI4G,IAAaA,EAASL,aAAa,aAAeK,EAAST,UAAUC,SAAS,aAEhF,YADAlD,EAAMsC,kBAIsB,UAA1BmB,EAAcE,SAAuBD,GAA8B,aAAlBA,EAASX,OAC5DL,EAAOV,iBAAiBxD,KAAK5C,EAAE4H,GAAS,cAI7CjB,GA7H+B,mDATI,2BAsIwB,SAACvC,GAC3D,IAAMwD,EAAS5H,EAAEoE,EAAMK,QAAQmB,QAjIG,QAiIsB,GACxD5F,EAAE4H,GAAQD,YA1IY,QA0IkB,eAAevE,KAAKgB,EAAM+C,UAGtEnH,EAAEgI,QAAQrB,GAhIe,2BAgIS,WAKhC,IADA,IAAIsB,EAAU,GAAGC,MAAMtF,KAAKlC,SAASyH,iBA5ID,iCA6I3BC,EAAI,EAAGC,EAAMJ,EAAQK,OAAQF,EAAIC,EAAKD,IAAK,CAClD,IAAMR,EAASK,EAAQG,GACjBlB,EAAQU,EAAO1G,cA9Ia,8BA+I9BgG,EAAME,SAAWF,EAAMO,aAAa,WACtCG,EAAOP,UAAUkB,IAxJG,UA0JpBX,EAAOP,UAAUlB,OA1JG,UAgKxB,IAAK,IAAIiC,EAAI,EAAGC,GADhBJ,EAAU,GAAGC,MAAMtF,KAAKlC,SAASyH,iBAzJG,4BA0JNG,OAAQF,EAAIC,EAAKD,IAAK,CAClD,IAAMR,EAASK,EAAQG,GACqB,SAAxCR,EAAO7G,aAAa,gBACtB6G,EAAOP,UAAUkB,IAnKG,UAqKpBX,EAAOP,UAAUlB,OArKG,cAgL1BnG,EAAEiE,GAAF,OAAa6C,EAAOV,iBACpBpG,EAAEiE,GAAF,OAAW2C,YAAcE,EACzB9G,EAAEiE,GAAF,OAAW4C,WAAa,WAEtB,OADA7G,EAAEiE,GAAF,OAAae,EACN8B,EAAOV,kBC1LhB,IAAMrB,EAAyB,WAGzByD,EAAS,eAETxD,EAAyBhF,EAAEiE,GAAGc,GAM9B0D,EAAU,CACdC,SAAW,IACXC,UAAW,EACXC,OAAW,EACXC,MAAW,QACXC,MAAW,EACXC,OAAW,GAGPC,EAAc,CAClBN,SAAW,mBACXC,SAAW,UACXC,MAAW,mBACXC,MAAW,mBACXC,KAAW,UACXC,MAAW,WAwCPE,EAAc,CAClBC,MAAQ,QACRC,IAAQ,OAQJC,EAAAA,WACJ,SAAAA,EAAYvI,EAASyB,GACnBxC,KAAKuJ,OAAiB,KACtBvJ,KAAKwJ,UAAiB,KACtBxJ,KAAKyJ,eAAiB,KACtBzJ,KAAK0J,WAAiB,EACtB1J,KAAK2J,YAAiB,EACtB3J,KAAK4J,aAAiB,KACtB5J,KAAK6J,YAAiB,EACtB7J,KAAK8J,YAAiB,EAEtB9J,KAAK+J,QAAqB/J,KAAKgK,WAAWxH,GAC1CxC,KAAKoF,SAAqBrE,EAC1Bf,KAAKiK,mBAAqBjK,KAAKoF,SAAShE,cA3Bf,wBA4BzBpB,KAAKkK,gBAAqB,iBAAkBtJ,SAAS8C,iBAAmByG,UAAUC,eAAiB,EACnGpK,KAAKqK,cAAqBnI,QAAQgG,OAAOoC,cAAgBpC,OAAOqC,gBAEhEvK,KAAKwK,gDAePC,KAAA,WACOzK,KAAK2J,YACR3J,KAAK0K,OAjFgB,WAqFzBC,gBAAA,YAGO/J,SAASgK,QACX1K,EAAEF,KAAKoF,UAAUR,GAAG,aAAsD,WAAvC1E,EAAEF,KAAKoF,UAAU5D,IAAI,eACzDxB,KAAKyK,UAITI,KAAA,WACO7K,KAAK2J,YACR3J,KAAK0K,OA/FgB,WAmGzB3B,MAAA,SAAMzE,GACCA,IACHtE,KAAK0J,WAAY,GAGf1J,KAAKoF,SAAShE,cAzEO,8CA0EvBhB,EAAKG,qBAAqBP,KAAKoF,UAC/BpF,KAAK8K,OAAM,IAGbC,cAAc/K,KAAKwJ,WACnBxJ,KAAKwJ,UAAY,QAGnBsB,MAAA,SAAMxG,GACCA,IACHtE,KAAK0J,WAAY,GAGf1J,KAAKwJ,YACPuB,cAAc/K,KAAKwJ,WACnBxJ,KAAKwJ,UAAY,MAGfxJ,KAAK+J,QAAQnB,WAAa5I,KAAK0J,YACjC1J,KAAKwJ,UAAYwB,aACdpK,SAASqK,gBAAkBjL,KAAK2K,gBAAkB3K,KAAKyK,MAAMS,KAAKlL,MACnEA,KAAK+J,QAAQnB,cAKnBuC,GAAA,SAAGC,GAAO,IAAArL,EAAAC,KACRA,KAAKyJ,eAAiBzJ,KAAKoF,SAAShE,cAxGX,yBA0GzB,IAAMiK,EAAcrL,KAAKsL,cAActL,KAAKyJ,gBAE5C,KAAI2B,EAAQpL,KAAKuJ,OAAOf,OAAS,GAAK4C,EAAQ,GAI9C,GAAIpL,KAAK2J,WACPzJ,EAAEF,KAAKoF,UAAUjF,IAxIP,oBAwIuB,WAAA,OAAMJ,EAAKoL,GAAGC,UADjD,CAKA,GAAIC,IAAgBD,EAGlB,OAFApL,KAAK+I,aACL/I,KAAK8K,QAIP,IAAMS,EAAYH,EAAQC,EAxJH,OACA,OA2JvBrL,KAAK0K,OAAOa,EAAWvL,KAAKuJ,OAAO6B,QAGrCzF,QAAA,WACEzF,EAAEF,KAAKoF,UAAUoG,IAAI9C,GACrBxI,EAAE0F,WAAW5F,KAAKoF,SA5LS,eA8L3BpF,KAAKuJ,OAAqB,KAC1BvJ,KAAK+J,QAAqB,KAC1B/J,KAAKoF,SAAqB,KAC1BpF,KAAKwJ,UAAqB,KAC1BxJ,KAAK0J,UAAqB,KAC1B1J,KAAK2J,WAAqB,KAC1B3J,KAAKyJ,eAAqB,KAC1BzJ,KAAKiK,mBAAqB,QAK5BD,WAAA,SAAWxH,GAMT,OALAA,EAAMiJ,EAAA,GACD9C,EACAnG,GAELpC,EAAKkC,gBAAgB2C,EAAMzC,EAAQ0G,GAC5B1G,KAGTkJ,aAAA,WACE,IAAMC,EAAYjL,KAAKkL,IAAI5L,KAAK8J,aAEhC,KAAI6B,GA/MuB,IA+M3B,CAIA,IAAMJ,EAAYI,EAAY3L,KAAK8J,YAEnC9J,KAAK8J,YAAc,EAGfyB,EAAY,GACdvL,KAAK6K,OAIHU,EAAY,GACdvL,KAAKyK,WAITD,mBAAA,WAAqB,IAAAqB,EAAA7L,KACfA,KAAK+J,QAAQlB,UACf3I,EAAEF,KAAKoF,UAAUyB,GAzMJ,uBAyMsB,SAACvC,GAAD,OAAWuH,EAAKC,SAASxH,MAGnC,UAAvBtE,KAAK+J,QAAQhB,OACf7I,EAAEF,KAAKoF,UACJyB,GA7Ma,0BA6MQ,SAACvC,GAAD,OAAWuH,EAAK9C,MAAMzE,MAC3CuC,GA7Ma,0BA6MQ,SAACvC,GAAD,OAAWuH,EAAKf,MAAMxG,MAG5CtE,KAAK+J,QAAQd,OACfjJ,KAAK+L,6BAITA,wBAAA,WAA0B,IAAAC,EAAAhM,KACxB,GAAKA,KAAKkK,gBAAV,CAIA,IAAM+B,EAAQ,SAAC3H,GACT0H,EAAK3B,eAAiBlB,EAAY7E,EAAM4H,cAAcC,YAAY3I,eACpEwI,EAAKnC,YAAcvF,EAAM4H,cAAcE,QAC7BJ,EAAK3B,gBACf2B,EAAKnC,YAAcvF,EAAM4H,cAAcG,QAAQ,GAAGD,UAahDE,EAAM,SAAChI,GACP0H,EAAK3B,eAAiBlB,EAAY7E,EAAM4H,cAAcC,YAAY3I,iBACpEwI,EAAKlC,YAAcxF,EAAM4H,cAAcE,QAAUJ,EAAKnC,aAGxDmC,EAAKN,eACsB,UAAvBM,EAAKjC,QAAQhB,QASfiD,EAAKjD,QACDiD,EAAKpC,cACP2C,aAAaP,EAAKpC,cAEpBoC,EAAKpC,aAAetJ,YAAW,SAACgE,GAAD,OAAW0H,EAAKlB,MAAMxG,KA5R9B,IA4R+D0H,EAAKjC,QAAQnB,YAIvG1I,EAAEF,KAAKoF,SAASiD,iBA5OS,uBA6OtBxB,GA7Pe,yBA6PM,SAAC2F,GAAD,OAAOA,EAAE5F,oBAE7B5G,KAAKqK,eACPnK,EAAEF,KAAKoF,UAAUyB,GAlQA,2BAkQsB,SAACvC,GAAD,OAAW2H,EAAM3H,MACxDpE,EAAEF,KAAKoF,UAAUyB,GAlQF,yBAkQsB,SAACvC,GAAD,OAAWgI,EAAIhI,MAEpDtE,KAAKoF,SAASmC,UAAUkB,IAxPG,mBA0P3BvI,EAAEF,KAAKoF,UAAUyB,GA1QD,0BA0QsB,SAACvC,GAAD,OAAW2H,EAAM3H,MACvDpE,EAAEF,KAAKoF,UAAUyB,GA1QF,yBA0QsB,SAACvC,GAAD,OA1C1B,SAACA,GAERA,EAAM4H,cAAcG,SAAW/H,EAAM4H,cAAcG,QAAQ7D,OAAS,EACtEwD,EAAKlC,YAAc,EAEnBkC,EAAKlC,YAAcxF,EAAM4H,cAAcG,QAAQ,GAAGD,QAAUJ,EAAKnC,YAqCnB4C,CAAKnI,MACrDpE,EAAEF,KAAKoF,UAAUyB,GA1QH,wBA0QsB,SAACvC,GAAD,OAAWgI,EAAIhI,WAIvDwH,SAAA,SAASxH,GACP,IAAI,kBAAkBhB,KAAKgB,EAAMK,OAAOsD,SAIxC,OAAQ3D,EAAMoI,OACZ,KAvTyB,GAwTvBpI,EAAMsC,iBACN5G,KAAK6K,OACL,MACF,KA1TyB,GA2TvBvG,EAAMsC,iBACN5G,KAAKyK,WAMXa,cAAA,SAAcvK,GAIZ,OAHAf,KAAKuJ,OAASxI,GAAWA,EAAQgD,WAC7B,GAAGqE,MAAMtF,KAAK/B,EAAQgD,WAAWsE,iBAhRZ,mBAiRrB,GACGrI,KAAKuJ,OAAOoD,QAAQ5L,MAG7B6L,oBAAA,SAAoBrB,EAAW9D,GAC7B,IAAMoF,EApTiB,SAoTCtB,EAClBuB,EApTiB,SAoTCvB,EAClBF,EAAkBrL,KAAKsL,cAAc7D,GACrCsF,EAAkB/M,KAAKuJ,OAAOf,OAAS,EAI7C,IAHwBsE,GAAmC,IAAhBzB,GACnBwB,GAAmBxB,IAAgB0B,KAErC/M,KAAK+J,QAAQf,KACjC,OAAOvB,EAGT,IACMuF,GAAa3B,GA/TI,SA8TLE,GAAgC,EAAI,IACZvL,KAAKuJ,OAAOf,OAEtD,OAAsB,IAAfwE,EACHhN,KAAKuJ,OAAOvJ,KAAKuJ,OAAOf,OAAS,GAAKxI,KAAKuJ,OAAOyD,MAGxDC,mBAAA,SAAmBC,EAAeC,GAChC,IAAMC,EAAcpN,KAAKsL,cAAc4B,GACjCG,EAAYrN,KAAKsL,cAActL,KAAKoF,SAAShE,cA3S1B,0BA4SnBkM,EAAapN,EAAE8F,MApUR,oBAoU2B,CACtCkH,cAAAA,EACA3B,UAAW4B,EACXI,KAAMF,EACNlC,GAAIiC,IAKN,OAFAlN,EAAEF,KAAKoF,UAAUpD,QAAQsL,GAElBA,KAGTE,2BAAA,SAA2BzM,GACzB,GAAIf,KAAKiK,mBAAoB,CAC3B,IAAMwD,EAAa,GAAGrF,MAAMtF,KAAK9C,KAAKiK,mBAAmB5B,iBA3TlC,YA4TvBnI,EAAEuN,GAAYxH,YApUa,UAsU3B,IAAMyH,EAAgB1N,KAAKiK,mBAAmB0D,SAC5C3N,KAAKsL,cAAcvK,IAGjB2M,GACFxN,EAAEwN,GAAeE,SA3UQ,cAgV/BlD,OAAA,SAAOa,EAAWxK,GAAS,IAQrB8M,EACAC,EACAX,EAVqBY,EAAA/N,KACnByH,EAAgBzH,KAAKoF,SAAShE,cAxUX,yBAyUnB4M,EAAqBhO,KAAKsL,cAAc7D,GACxCwG,EAAgBlN,GAAW0G,GAC/BzH,KAAK4M,oBAAoBrB,EAAW9D,GAChCyG,EAAmBlO,KAAKsL,cAAc2C,GACtCE,EAAYjM,QAAQlC,KAAKwJ,WAgB/B,GA1XuB,SAgXnB+B,GACFsC,EA1V2B,qBA2V3BC,EA1V2B,qBA2V3BX,EAjXqB,SAmXrBU,EA/V2B,sBAgW3BC,EA7V2B,qBA8V3BX,EApXqB,SAuXnBc,GAAe/N,EAAE+N,GAAa/H,SAtWL,UAuW3BlG,KAAK2J,YAAa,OAKpB,IADmB3J,KAAKiN,mBAAmBgB,EAAad,GACzC1H,sBAIVgC,GAAkBwG,EAAvB,CAKAjO,KAAK2J,YAAa,EAEdwE,GACFnO,KAAK+I,QAGP/I,KAAKwN,2BAA2BS,GAEhC,IAAMG,EAAYlO,EAAE8F,MA3YR,mBA2Y0B,CACpCkH,cAAee,EACf1C,UAAW4B,EACXI,KAAMS,EACN7C,GAAI+C,IAGN,GAAIhO,EAAEF,KAAKoF,UAAUc,SAnYQ,SAmYoB,CAC/ChG,EAAE+N,GAAaL,SAASE,GAExB1N,EAAK0B,OAAOmM,GAEZ/N,EAAEuH,GAAemG,SAASC,GAC1B3N,EAAE+N,GAAaL,SAASC,GAExB,IAAMQ,EAAsBC,SAASL,EAAYhN,aAAa,iBAAkB,IAC5EoN,GACFrO,KAAK+J,QAAQwE,gBAAkBvO,KAAK+J,QAAQwE,iBAAmBvO,KAAK+J,QAAQnB,SAC5E5I,KAAK+J,QAAQnB,SAAWyF,GAExBrO,KAAK+J,QAAQnB,SAAW5I,KAAK+J,QAAQwE,iBAAmBvO,KAAK+J,QAAQnB,SAGvE,IAAMrH,EAAqBnB,EAAKkB,iCAAiCmG,GAEjEvH,EAAEuH,GACCtH,IAAIC,EAAKC,gBAAgB,WACxBH,EAAE+N,GACChI,YAAe4H,EADlB,IAC0CC,GACvCF,SA1ZoB,UA4ZvB1N,EAAEuH,GAAexB,YAAeuI,UAAqBV,EAArD,IAAuED,GAEvEE,EAAKpE,YAAa,EAElBrJ,YAAW,WAAA,OAAMJ,EAAE6N,EAAK3I,UAAUpD,QAAQoM,KAAY,MAEvD/J,qBAAqB9C,QAExBrB,EAAEuH,GAAexB,YApaU,UAqa3B/F,EAAE+N,GAAaL,SAraY,UAua3B5N,KAAK2J,YAAa,EAClBzJ,EAAEF,KAAKoF,UAAUpD,QAAQoM,GAGvBD,GACFnO,KAAK8K,YAMFxE,iBAAP,SAAwB9D,GACtB,OAAOxC,KAAKuG,MAAK,WACf,IAAIE,EAAOvG,EAAEF,MAAMyG,KAneM,eAoerBsD,EAAO0B,EAAA,GACN9C,EACAzI,EAAEF,MAAMyG,QAGS,iBAAXjE,IACTuH,EAAO0B,EAAA,GACF1B,EACAvH,IAIP,IAAMiM,EAA2B,iBAAXjM,EAAsBA,EAASuH,EAAQjB,MAO7D,GALKrC,IACHA,EAAO,IAAI6C,EAAStJ,KAAM+J,GAC1B7J,EAAEF,MAAMyG,KApfe,cAofAA,IAGH,iBAAXjE,EACTiE,EAAK0E,GAAG3I,QACH,GAAsB,iBAAXiM,EAAqB,CACrC,GAA4B,oBAAjBhI,EAAKgI,GACd,MAAM,IAAIxK,UAAJ,oBAAkCwK,EAAlC,KAERhI,EAAKgI,UACI1E,EAAQnB,UAAYmB,EAAQ2E,OACrCjI,EAAKsC,QACLtC,EAAKqE,eAKJ6D,qBAAP,SAA4BrK,GAC1B,IAAMtD,EAAWZ,EAAKU,uBAAuBd,MAE7C,GAAKgB,EAAL,CAIA,IAAM2D,EAASzE,EAAEc,GAAU,GAE3B,GAAK2D,GAAWzE,EAAEyE,GAAQuB,SAheG,YAge7B,CAIA,IAAM1D,EAAMiJ,EAAA,GACPvL,EAAEyE,GAAQ8B,OACVvG,EAAEF,MAAMyG,QAEPmI,EAAa5O,KAAKiB,aAAa,iBAEjC2N,IACFpM,EAAOoG,UAAW,GAGpBU,EAAShD,iBAAiBxD,KAAK5C,EAAEyE,GAASnC,GAEtCoM,GACF1O,EAAEyE,GAAQ8B,KA/hBe,eA+hBA0E,GAAGyD,GAG9BtK,EAAMsC,4DAjcN,MAlG2B,wCAsG3B,OAAO+B,QA3BLW,GAkeNpJ,EAAEU,UAAUiG,GAhgBc,6BAiBG,gCA+e6ByC,EAASqF,sBAEnEzO,EAAEgI,QAAQrB,GAngBe,6BAmgBS,WAEhC,IADA,IAAMgI,EAAY,GAAGzG,MAAMtF,KAAKlC,SAASyH,iBAjfd,2BAkflBC,EAAI,EAAGC,EAAMsG,EAAUrG,OAAQF,EAAIC,EAAKD,IAAK,CACpD,IAAMwG,EAAY5O,EAAE2O,EAAUvG,IAC9BgB,EAAShD,iBAAiBxD,KAAKgM,EAAWA,EAAUrI,YAUxDvG,EAAEiE,GAAGc,GAAQqE,EAAShD,iBACtBpG,EAAEiE,GAAGc,GAAM6B,YAAcwC,EACzBpJ,EAAEiE,GAAGc,GAAM8B,WAAa,WAEtB,OADA7G,EAAEiE,GAAGc,GAAQC,EACNoE,EAAShD,kBClkBlB,IAAMrB,EAAsB,WAKtBC,EAAsBhF,EAAEiE,GAAGc,GAE3B0D,EAAU,CACd1B,QAAS,EACTpB,OAAS,IAGLqD,EAAc,CAClBjC,OAAS,UACTpB,OAAS,oBA0BLkJ,EAAAA,WACJ,SAAAA,EAAYhO,EAASyB,GACnBxC,KAAKgP,kBAAmB,EACxBhP,KAAKoF,SAAmBrE,EACxBf,KAAK+J,QAAmB/J,KAAKgK,WAAWxH,GACxCxC,KAAKiP,cAAmB,GAAG7G,MAAMtF,KAAKlC,SAASyH,iBAC7C,mCAAmCtH,EAAQmO,GAA3C,6CAC0CnO,EAAQmO,GADlD,OAKF,IADA,IAAMC,EAAa,GAAG/G,MAAMtF,KAAKlC,SAASyH,iBAlBjB,6BAmBhBC,EAAI,EAAGC,EAAM4G,EAAW3G,OAAQF,EAAIC,EAAKD,IAAK,CACrD,IAAM8G,EAAOD,EAAW7G,GAClBtH,EAAWZ,EAAKU,uBAAuBsO,GACvCC,EAAgB,GAAGjH,MAAMtF,KAAKlC,SAASyH,iBAAiBrH,IAC3DsO,QAAO,SAACC,GAAD,OAAeA,IAAcxO,KAEtB,OAAbC,GAAqBqO,EAAc7G,OAAS,IAC9CxI,KAAKwP,UAAYxO,EACjBhB,KAAKiP,cAAcQ,KAAKL,IAI5BpP,KAAK0P,QAAU1P,KAAK+J,QAAQlE,OAAS7F,KAAK2P,aAAe,KAEpD3P,KAAK+J,QAAQlE,QAChB7F,KAAK4P,0BAA0B5P,KAAKoF,SAAUpF,KAAKiP,eAGjDjP,KAAK+J,QAAQ9C,QACfjH,KAAKiH,oCAgBTA,OAAA,WACM/G,EAAEF,KAAKoF,UAAUc,SAhEK,QAiExBlG,KAAK6P,OAEL7P,KAAK8P,UAITA,KAAA,WAAO,IAMDC,EACAC,EAPCjQ,EAAAC,KACL,IAAIA,KAAKgP,mBACP9O,EAAEF,KAAKoF,UAAUc,SAzEO,UAgFtBlG,KAAK0P,SAUgB,KATvBK,EAAU,GAAG3H,MAAMtF,KAAK9C,KAAK0P,QAAQrH,iBAzEd,uBA0EpBiH,QAAO,SAACF,GACP,MAAmC,iBAAxBrP,EAAKgK,QAAQlE,OACfuJ,EAAKnO,aAAa,iBAAmBlB,EAAKgK,QAAQlE,OAGpDuJ,EAAK7H,UAAUC,SAtFF,gBAyFZgB,SACVuH,EAAU,QAIVA,IACFC,EAAc9P,EAAE6P,GAASE,IAAIjQ,KAAKwP,WAAW/I,KArHvB,iBAsHHuJ,EAAYhB,mBAFjC,CAOA,IAAMkB,EAAahQ,EAAE8F,MA5GT,oBA8GZ,GADA9F,EAAEF,KAAKoF,UAAUpD,QAAQkO,IACrBA,EAAWzK,qBAAf,CAIIsK,IACFhB,EAASzI,iBAAiBxD,KAAK5C,EAAE6P,GAASE,IAAIjQ,KAAKwP,WAAY,QAC1DQ,GACH9P,EAAE6P,GAAStJ,KApIS,cAoIM,OAI9B,IAAM0J,EAAYnQ,KAAKoQ,gBAEvBlQ,EAAEF,KAAKoF,UACJa,YArHuB,YAsHvB2H,SArHuB,cAuH1B5N,KAAKoF,SAASiL,MAAMF,GAAa,EAE7BnQ,KAAKiP,cAAczG,QACrBtI,EAAEF,KAAKiP,eACJhJ,YA1HqB,aA2HrBqK,KAAK,iBAAiB,GAG3BtQ,KAAKuQ,kBAAiB,GAEtB,IAaMC,EAAU,UADaL,EAAU,GAAG3M,cAAgB2M,EAAU/H,MAAM,IAEpE7G,EAAqBnB,EAAKkB,iCAAiCtB,KAAKoF,UAEtElF,EAAEF,KAAKoF,UACJjF,IAAIC,EAAKC,gBAjBK,WACfH,EAAEH,EAAKqF,UACJa,YAnIqB,cAoIrB2H,SAAY6C,iBAEf1Q,EAAKqF,SAASiL,MAAMF,GAAa,GAEjCpQ,EAAKwQ,kBAAiB,GAEtBrQ,EAAEH,EAAKqF,UAAUpD,QAjJN,wBA0JVqC,qBAAqB9C,GAExBvB,KAAKoF,SAASiL,MAAMF,GAAgBnQ,KAAKoF,SAASoL,GAAlD,UAGFX,KAAA,WAAO,IAAAhE,EAAA7L,KACL,IAAIA,KAAKgP,kBACN9O,EAAEF,KAAKoF,UAAUc,SA5JM,QA2J1B,CAKA,IAAMgK,EAAahQ,EAAE8F,MApKT,oBAsKZ,GADA9F,EAAEF,KAAKoF,UAAUpD,QAAQkO,IACrBA,EAAWzK,qBAAf,CAIA,IAAM0K,EAAYnQ,KAAKoQ,gBAEvBpQ,KAAKoF,SAASiL,MAAMF,GAAgBnQ,KAAKoF,SAASsL,wBAAwBP,GAA1E,KAEA/P,EAAK0B,OAAO9B,KAAKoF,UAEjBlF,EAAEF,KAAKoF,UACJwI,SA3KuB,cA4KvB3H,YAAewK,iBAElB,IAAME,EAAqB3Q,KAAKiP,cAAczG,OAC9C,GAAImI,EAAqB,EACvB,IAAK,IAAIrI,EAAI,EAAGA,EAAIqI,EAAoBrI,IAAK,CAC3C,IAAMtG,EAAUhC,KAAKiP,cAAc3G,GAC7BtH,EAAWZ,EAAKU,uBAAuBkB,GAE7C,GAAiB,OAAbhB,EACYd,EAAE,GAAGkI,MAAMtF,KAAKlC,SAASyH,iBAAiBrH,KAC7CkF,SAxLS,SAyLlBhG,EAAE8B,GAAS4L,SAtLO,aAuLf0C,KAAK,iBAAiB,GAMjCtQ,KAAKuQ,kBAAiB,GAUtBvQ,KAAKoF,SAASiL,MAAMF,GAAa,GACjC,IAAM5O,EAAqBnB,EAAKkB,iCAAiCtB,KAAKoF,UAEtElF,EAAEF,KAAKoF,UACJjF,IAAIC,EAAKC,gBAZK,WACfwL,EAAK0E,kBAAiB,GACtBrQ,EAAE2L,EAAKzG,UACJa,YAnMqB,cAoMrB2H,SArMqB,YAsMrB5L,QA1MS,yBAkNXqC,qBAAqB9C,QAG1BgP,iBAAA,SAAiBK,GACf5Q,KAAKgP,iBAAmB4B,KAG1BjL,QAAA,WACEzF,EAAE0F,WAAW5F,KAAKoF,SA5OM,eA8OxBpF,KAAK+J,QAAmB,KACxB/J,KAAK0P,QAAmB,KACxB1P,KAAKoF,SAAmB,KACxBpF,KAAKiP,cAAmB,KACxBjP,KAAKgP,iBAAmB,QAK1BhF,WAAA,SAAWxH,GAOT,OANAA,EAAMiJ,EAAA,GACD9C,EACAnG,IAEEyE,OAAS/E,QAAQM,EAAOyE,QAC/B7G,EAAKkC,gBAAgB2C,EAAMzC,EAAQ0G,GAC5B1G,KAGT4N,cAAA,WAEE,OADiBlQ,EAAEF,KAAKoF,UAAUc,SAxOb,SAAA,QACA,YA2OvByJ,WAAA,WAAa,IACP9J,EADOmG,EAAAhM,KAGPI,EAAK+B,UAAUnC,KAAK+J,QAAQlE,SAC9BA,EAAS7F,KAAK+J,QAAQlE,OAGoB,oBAA/B7F,KAAK+J,QAAQlE,OAAOzB,SAC7ByB,EAAS7F,KAAK+J,QAAQlE,OAAO,KAG/BA,EAASjF,SAASQ,cAAcpB,KAAK+J,QAAQlE,QAG/C,IAAM7E,EAAQ,yCAA4ChB,KAAK+J,QAAQlE,OAAzD,KACR8H,EAAW,GAAGvF,MAAMtF,KAAK+C,EAAOwC,iBAAiBrH,IASvD,OAPAd,EAAEyN,GAAUpH,MAAK,SAAC+B,EAAGvH,GACnBiL,EAAK4D,0BACHb,EAAS8B,sBAAsB9P,GAC/B,CAACA,OAIE8E,KAGT+J,0BAAA,SAA0B7O,EAAS+P,GACjC,IAAMC,EAAS7Q,EAAEa,GAASmF,SA7QA,QA+QtB4K,EAAatI,QACftI,EAAE4Q,GACCjJ,YA9QqB,aA8QckJ,GACnCT,KAAK,gBAAiBS,MAMtBF,sBAAP,SAA6B9P,GAC3B,IAAMC,EAAWZ,EAAKU,uBAAuBC,GAC7C,OAAOC,EAAWJ,SAASQ,cAAcJ,GAAY,QAGhDsF,iBAAP,SAAwB9D,GACtB,OAAOxC,KAAKuG,MAAK,WACf,IAAMyK,EAAU9Q,EAAEF,MACdyG,EAAYuK,EAAMvK,KArTA,eAsThBsD,EAAO0B,EAAA,GACR9C,EACAqI,EAAMvK,OACY,iBAAXjE,GAAuBA,EAASA,EAAS,IAYrD,IATKiE,GAAQsD,EAAQ9C,QAA4B,iBAAXzE,GAAuB,YAAYc,KAAKd,KAC5EuH,EAAQ9C,QAAS,GAGdR,IACHA,EAAO,IAAIsI,EAAS/O,KAAM+J,GAC1BiH,EAAMvK,KAlUc,cAkUCA,IAGD,iBAAXjE,EAAqB,CAC9B,GAA4B,oBAAjBiE,EAAKjE,GACd,MAAM,IAAIyB,UAAJ,oBAAkCzB,EAAlC,KAERiE,EAAKjE,kDA9PT,MA5EwB,wCAgFxB,OAAOmG,QAzCLoG,GA+SN7O,EAAEU,UAAUiG,GAlUc,6BAWG,4BAuT8B,SAAUvC,GAE/B,MAAhCA,EAAM2M,cAAchJ,SACtB3D,EAAMsC,iBAGR,IAAMsK,EAAWhR,EAAEF,MACbgB,EAAWZ,EAAKU,uBAAuBd,MACvCmR,EAAY,GAAG/I,MAAMtF,KAAKlC,SAASyH,iBAAiBrH,IAE1Dd,EAAEiR,GAAW5K,MAAK,WAChB,IAAM6K,EAAUlR,EAAEF,MAEZwC,EADU4O,EAAQ3K,KAjWA,eAkWD,SAAWyK,EAASzK,OAC3CsI,EAASzI,iBAAiBxD,KAAKsO,EAAS5O,SAU5CtC,EAAEiE,GAAGc,GAAQ8J,EAASzI,iBACtBpG,EAAEiE,GAAGc,GAAM6B,YAAciI,EACzB7O,EAAEiE,GAAGc,GAAM8B,WAAa,WAEtB,OADA7G,EAAEiE,GAAGc,GAAQC,EACN6J,EAASzI,kBC3WlB,IAAI+K,EAA8B,oBAAXnJ,QAA8C,oBAAbtH,UAAiD,oBAAduJ,UAEvFmH,EAAkB,WAEpB,IADA,IAAIC,EAAwB,CAAC,OAAQ,UAAW,WACvCjJ,EAAI,EAAGA,EAAIiJ,EAAsB/I,OAAQF,GAAK,EACrD,GAAI+I,GAAalH,UAAUqH,UAAU7E,QAAQ4E,EAAsBjJ,KAAO,EACxE,OAAO,EAGX,OAAO,EAPa,GAqCtB,IAWImJ,EAXqBJ,GAAanJ,OAAOwJ,QA3B7C,SAA2BvN,GACzB,IAAIlE,GAAS,EACb,OAAO,WACDA,IAGJA,GAAS,EACTiI,OAAOwJ,QAAQC,UAAUC,MAAK,WAC5B3R,GAAS,EACTkE,UAKN,SAAsBA,GACpB,IAAI0N,GAAY,EAChB,OAAO,WACAA,IACHA,GAAY,EACZvR,YAAW,WACTuR,GAAY,EACZ1N,MACCmN,MAyBT,SAASQ,EAAWC,GAElB,OAAOA,GAA8D,sBADvD,GACoB7O,SAASJ,KAAKiP,GAUlD,SAASC,EAAyBjR,EAAS2B,GACzC,GAAyB,IAArB3B,EAAQsB,SACV,MAAO,GAGT,IACIb,EADST,EAAQkR,cAAcC,YAClBC,iBAAiBpR,EAAS,MAC3C,OAAO2B,EAAWlB,EAAIkB,GAAYlB,EAUpC,SAAS4Q,EAAcrR,GACrB,MAAyB,SAArBA,EAAQsR,SACHtR,EAEFA,EAAQgD,YAAchD,EAAQuR,KAUvC,SAASC,EAAgBxR,GAEvB,IAAKA,EACH,OAAOH,SAAS4R,KAGlB,OAAQzR,EAAQsR,UACd,IAAK,OACL,IAAK,OACH,OAAOtR,EAAQkR,cAAcO,KAC/B,IAAK,YACH,OAAOzR,EAAQyR,KAKnB,IAAIC,EAAwBT,EAAyBjR,GACjD2R,EAAWD,EAAsBC,SACjCC,EAAYF,EAAsBE,UAClCC,EAAYH,EAAsBG,UAEtC,MAAI,wBAAwBtP,KAAKoP,EAAWE,EAAYD,GAC/C5R,EAGFwR,EAAgBH,EAAcrR,IAUvC,SAAS8R,EAAiBC,GACxB,OAAOA,GAAaA,EAAUC,cAAgBD,EAAUC,cAAgBD,EAG1E,IAAIE,EAAS3B,MAAgBnJ,OAAO+K,uBAAwBrS,SAASsS,cACjEC,EAAS9B,GAAa,UAAU/N,KAAK6G,UAAUqH,WASnD,SAAS4B,EAAKlP,GACZ,OAAgB,KAAZA,EACK8O,EAEO,KAAZ9O,EACKiP,EAEFH,GAAUG,EAUnB,SAASE,EAAgBtS,GACvB,IAAKA,EACH,OAAOH,SAAS8C,gBAQlB,IALA,IAAI4P,EAAiBF,EAAK,IAAMxS,SAAS4R,KAAO,KAG5Ce,EAAexS,EAAQwS,cAAgB,KAEpCA,IAAiBD,GAAkBvS,EAAQyS,oBAChDD,GAAgBxS,EAAUA,EAAQyS,oBAAoBD,aAGxD,IAAIlB,EAAWkB,GAAgBA,EAAalB,SAE5C,OAAKA,GAAyB,SAAbA,GAAoC,SAAbA,GAMsB,IAA1D,CAAC,KAAM,KAAM,SAAS1F,QAAQ4G,EAAalB,WAA2E,WAAvDL,EAAyBuB,EAAc,YACjGF,EAAgBE,GAGlBA,EATExS,EAAUA,EAAQkR,cAAcvO,gBAAkB9C,SAAS8C,gBA4BtE,SAAS+P,EAAQC,GACf,OAAwB,OAApBA,EAAK3P,WACA0P,EAAQC,EAAK3P,YAGf2P,EAWT,SAASC,EAAuBC,EAAUC,GAExC,KAAKD,GAAaA,EAASvR,UAAawR,GAAaA,EAASxR,UAC5D,OAAOzB,SAAS8C,gBAIlB,IAAIoQ,EAAQF,EAASG,wBAAwBF,GAAYG,KAAKC,4BAC1DhI,EAAQ6H,EAAQF,EAAWC,EAC3BvH,EAAMwH,EAAQD,EAAWD,EAGzBM,EAAQtT,SAASuT,cACrBD,EAAME,SAASnI,EAAO,GACtBiI,EAAMG,OAAO/H,EAAK,GAClB,IA/CyBvL,EACrBsR,EA8CAiC,EAA0BJ,EAAMI,wBAIpC,GAAIV,IAAaU,GAA2BT,IAAaS,GAA2BrI,EAAMzE,SAAS8E,GACjG,MAjDe,UAFb+F,GADqBtR,EAoDDuT,GAnDDjC,WAKH,SAAbA,GAAuBgB,EAAgBtS,EAAQwT,qBAAuBxT,EAkDpEsS,EAAgBiB,GAHdA,EAOX,IAAIE,EAAef,EAAQG,GAC3B,OAAIY,EAAalC,KACRqB,EAAuBa,EAAalC,KAAMuB,GAE1CF,EAAuBC,EAAUH,EAAQI,GAAUvB,MAY9D,SAASmC,EAAU1T,GACjB,IAAI2T,EAAO1P,UAAUwD,OAAS,QAAsBmM,IAAjB3P,UAAU,GAAmBA,UAAU,GAAK,MAE3E4P,EAAqB,QAATF,EAAiB,YAAc,aAC3CrC,EAAWtR,EAAQsR,SAEvB,GAAiB,SAAbA,GAAoC,SAAbA,EAAqB,CAC9C,IAAIwC,EAAO9T,EAAQkR,cAAcvO,gBAC7BoR,EAAmB/T,EAAQkR,cAAc6C,kBAAoBD,EACjE,OAAOC,EAAiBF,GAG1B,OAAO7T,EAAQ6T,GAYjB,SAASG,EAAcC,EAAMjU,GAC3B,IAAIkU,EAAWjQ,UAAUwD,OAAS,QAAsBmM,IAAjB3P,UAAU,IAAmBA,UAAU,GAE1EkQ,EAAYT,EAAU1T,EAAS,OAC/BoU,EAAaV,EAAU1T,EAAS,QAChCqU,EAAWH,GAAY,EAAI,EAK/B,OAJAD,EAAKK,KAAOH,EAAYE,EACxBJ,EAAKM,QAAUJ,EAAYE,EAC3BJ,EAAKO,MAAQJ,EAAaC,EAC1BJ,EAAKQ,OAASL,EAAaC,EACpBJ,EAaT,SAASS,EAAeC,EAAQC,GAC9B,IAAIC,EAAiB,MAATD,EAAe,OAAS,MAChCE,EAAkB,SAAVD,EAAmB,QAAU,SAEzC,OAAOjU,WAAW+T,EAAO,SAAWE,EAAQ,UAAYjU,WAAW+T,EAAO,SAAWG,EAAQ,UAG/F,SAASC,EAAQH,EAAMnD,EAAMqC,EAAMkB,GACjC,OAAOrV,KAAKsV,IAAIxD,EAAK,SAAWmD,GAAOnD,EAAK,SAAWmD,GAAOd,EAAK,SAAWc,GAAOd,EAAK,SAAWc,GAAOd,EAAK,SAAWc,GAAOvC,EAAK,IAAM9E,SAASuG,EAAK,SAAWc,IAASrH,SAASyH,EAAc,UAAqB,WAATJ,EAAoB,MAAQ,UAAYrH,SAASyH,EAAc,UAAqB,WAATJ,EAAoB,SAAW,WAAa,GAG5U,SAASM,EAAerV,GACtB,IAAI4R,EAAO5R,EAAS4R,KAChBqC,EAAOjU,EAAS8C,gBAChBqS,EAAgB3C,EAAK,KAAOjB,iBAAiB0C,GAEjD,MAAO,CACLqB,OAAQJ,EAAQ,SAAUtD,EAAMqC,EAAMkB,GACtCI,MAAOL,EAAQ,QAAStD,EAAMqC,EAAMkB,IAIxC,IAAIK,EAAiB,SAAUC,EAAUvP,GACvC,KAAMuP,aAAoBvP,GACxB,MAAM,IAAI7C,UAAU,sCAIpBqS,EAAc,WAChB,SAASC,EAAiB5R,EAAQ6R,GAChC,IAAK,IAAIlO,EAAI,EAAGA,EAAIkO,EAAMhO,OAAQF,IAAK,CACrC,IAAImO,EAAaD,EAAMlO,GACvBmO,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDjU,OAAOkU,eAAelS,EAAQ8R,EAAWK,IAAKL,IAIlD,OAAO,SAAU3P,EAAaiQ,EAAYC,GAGxC,OAFID,GAAYR,EAAiBzP,EAAYlE,UAAWmU,GACpDC,GAAaT,EAAiBzP,EAAakQ,GACxClQ,GAdO,GAsBd+P,EAAiB,SAAUzU,EAAK0U,EAAK9T,GAYvC,OAXI8T,KAAO1U,EACTO,OAAOkU,eAAezU,EAAK0U,EAAK,CAC9B9T,MAAOA,EACP0T,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZxU,EAAI0U,GAAO9T,EAGNZ,GAGLqJ,EAAW9I,OAAOsU,QAAU,SAAUtS,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAItD,UAAUwD,OAAQF,IAAK,CACzC,IAAI4O,EAASlS,UAAUsD,GAEvB,IAAK,IAAIwO,KAAOI,EACVvU,OAAOC,UAAUC,eAAeC,KAAKoU,EAAQJ,KAC/CnS,EAAOmS,GAAOI,EAAOJ,IAK3B,OAAOnS,GAUT,SAASwS,EAAcC,GACrB,OAAO3L,EAAS,GAAI2L,EAAS,CAC3B5B,MAAO4B,EAAQ7B,KAAO6B,EAAQjB,MAC9Bb,OAAQ8B,EAAQ/B,IAAM+B,EAAQlB,SAWlC,SAASxF,EAAsB3P,GAC7B,IAAIiU,EAAO,GAKX,IACE,GAAI5B,EAAK,IAAK,CACZ4B,EAAOjU,EAAQ2P,wBACf,IAAIwE,EAAYT,EAAU1T,EAAS,OAC/BoU,EAAaV,EAAU1T,EAAS,QACpCiU,EAAKK,KAAOH,EACZF,EAAKO,MAAQJ,EACbH,EAAKM,QAAUJ,EACfF,EAAKQ,OAASL,OAEdH,EAAOjU,EAAQ2P,wBAEjB,MAAOlE,IAET,IAAI6K,EAAS,CACX9B,KAAMP,EAAKO,KACXF,IAAKL,EAAKK,IACVc,MAAOnB,EAAKQ,MAAQR,EAAKO,KACzBW,OAAQlB,EAAKM,OAASN,EAAKK,KAIzBiC,EAA6B,SAArBvW,EAAQsR,SAAsB4D,EAAelV,EAAQkR,eAAiB,GAC9EkE,EAAQmB,EAAMnB,OAASpV,EAAQwW,aAAeF,EAAOlB,MACrDD,EAASoB,EAAMpB,QAAUnV,EAAQyW,cAAgBH,EAAOnB,OAExDuB,EAAiB1W,EAAQ2W,YAAcvB,EACvCwB,EAAgB5W,EAAQgB,aAAemU,EAI3C,GAAIuB,GAAkBE,EAAe,CACnC,IAAIjC,EAAS1D,EAAyBjR,GACtC0W,GAAkBhC,EAAeC,EAAQ,KACzCiC,GAAiBlC,EAAeC,EAAQ,KAExC2B,EAAOlB,OAASsB,EAChBJ,EAAOnB,QAAUyB,EAGnB,OAAOR,EAAcE,GAGvB,SAASO,EAAqCjK,EAAU9H,GACtD,IAAIgS,EAAgB7S,UAAUwD,OAAS,QAAsBmM,IAAjB3P,UAAU,IAAmBA,UAAU,GAE/EmO,EAASC,EAAK,IACd0E,EAA6B,SAApBjS,EAAOwM,SAChB0F,EAAerH,EAAsB/C,GACrCqK,EAAatH,EAAsB7K,GACnCoS,EAAe1F,EAAgB5E,GAE/B+H,EAAS1D,EAAyBnM,GAClCqS,EAAiBvW,WAAW+T,EAAOwC,gBACnCC,EAAkBxW,WAAW+T,EAAOyC,iBAGpCN,GAAiBC,IACnBE,EAAW3C,IAAM3U,KAAKsV,IAAIgC,EAAW3C,IAAK,GAC1C2C,EAAWzC,KAAO7U,KAAKsV,IAAIgC,EAAWzC,KAAM,IAE9C,IAAI6B,EAAUD,EAAc,CAC1B9B,IAAK0C,EAAa1C,IAAM2C,EAAW3C,IAAM6C,EACzC3C,KAAMwC,EAAaxC,KAAOyC,EAAWzC,KAAO4C,EAC5ChC,MAAO4B,EAAa5B,MACpBD,OAAQ6B,EAAa7B,SASvB,GAPAkB,EAAQgB,UAAY,EACpBhB,EAAQiB,WAAa,GAMhBlF,GAAU2E,EAAQ,CACrB,IAAIM,EAAYzW,WAAW+T,EAAO0C,WAC9BC,EAAa1W,WAAW+T,EAAO2C,YAEnCjB,EAAQ/B,KAAO6C,EAAiBE,EAChChB,EAAQ9B,QAAU4C,EAAiBE,EACnChB,EAAQ7B,MAAQ4C,EAAkBE,EAClCjB,EAAQ5B,OAAS2C,EAAkBE,EAGnCjB,EAAQgB,UAAYA,EACpBhB,EAAQiB,WAAaA,EAOvB,OAJIlF,IAAW0E,EAAgBhS,EAAO2B,SAASyQ,GAAgBpS,IAAWoS,GAA0C,SAA1BA,EAAa5F,YACrG+E,EAAUrC,EAAcqC,EAASvR,IAG5BuR,EAGT,SAASkB,EAA8CvX,GACrD,IAAIwX,EAAgBvT,UAAUwD,OAAS,QAAsBmM,IAAjB3P,UAAU,IAAmBA,UAAU,GAE/E6P,EAAO9T,EAAQkR,cAAcvO,gBAC7B8U,EAAiBZ,EAAqC7W,EAAS8T,GAC/DsB,EAAQzV,KAAKsV,IAAInB,EAAK0C,YAAarP,OAAOuQ,YAAc,GACxDvC,EAASxV,KAAKsV,IAAInB,EAAK2C,aAActP,OAAOwQ,aAAe,GAE3DxD,EAAaqD,EAAkC,EAAlB9D,EAAUI,GACvCM,EAAcoD,EAA0C,EAA1B9D,EAAUI,EAAM,QAE9C8D,EAAS,CACXtD,IAAKH,EAAYsD,EAAenD,IAAMmD,EAAeJ,UACrD7C,KAAMJ,EAAaqD,EAAejD,KAAOiD,EAAeH,WACxDlC,MAAOA,EACPD,OAAQA,GAGV,OAAOiB,EAAcwB,GAWvB,SAASC,EAAQ7X,GACf,IAAIsR,EAAWtR,EAAQsR,SACvB,GAAiB,SAAbA,GAAoC,SAAbA,EACzB,OAAO,EAET,GAAsD,UAAlDL,EAAyBjR,EAAS,YACpC,OAAO,EAET,IAAIgD,EAAaqO,EAAcrR,GAC/B,QAAKgD,GAGE6U,EAAQ7U,GAWjB,SAAS8U,EAA6B9X,GAEpC,IAAKA,IAAYA,EAAQ+X,eAAiB1F,IACxC,OAAOxS,SAAS8C,gBAGlB,IADA,IAAIqV,EAAKhY,EAAQ+X,cACVC,GAAoD,SAA9C/G,EAAyB+G,EAAI,cACxCA,EAAKA,EAAGD,cAEV,OAAOC,GAAMnY,SAAS8C,gBAcxB,SAASsV,EAAcC,EAAQnG,EAAWoG,EAASC,GACjD,IAAItB,EAAgB7S,UAAUwD,OAAS,QAAsBmM,IAAjB3P,UAAU,IAAmBA,UAAU,GAI/EoU,EAAa,CAAE/D,IAAK,EAAGE,KAAM,GAC7BhC,EAAesE,EAAgBgB,EAA6BI,GAAUtF,EAAuBsF,EAAQpG,EAAiBC,IAG1H,GAA0B,aAAtBqG,EACFC,EAAad,EAA8C/E,EAAcsE,OACpE,CAEL,IAAIwB,OAAiB,EACK,iBAAtBF,EAE8B,UADhCE,EAAiB9G,EAAgBH,EAAcU,KAC5BT,WACjBgH,EAAiBJ,EAAOhH,cAAcvO,iBAGxC2V,EAD+B,WAAtBF,EACQF,EAAOhH,cAAcvO,gBAErByV,EAGnB,IAAI/B,EAAUQ,EAAqCyB,EAAgB9F,EAAcsE,GAGjF,GAAgC,SAA5BwB,EAAehH,UAAwBuG,EAAQrF,GAWjD6F,EAAahC,MAXmD,CAChE,IAAIkC,EAAkBrD,EAAegD,EAAOhH,eACxCiE,EAASoD,EAAgBpD,OACzBC,EAAQmD,EAAgBnD,MAE5BiD,EAAW/D,KAAO+B,EAAQ/B,IAAM+B,EAAQgB,UACxCgB,EAAW9D,OAASY,EAASkB,EAAQ/B,IACrC+D,EAAW7D,MAAQ6B,EAAQ7B,KAAO6B,EAAQiB,WAC1Ce,EAAW5D,MAAQW,EAAQiB,EAAQ7B,MASvC,IAAIgE,EAAqC,iBADzCL,EAAUA,GAAW,GAOrB,OALAE,EAAW7D,MAAQgE,EAAkBL,EAAUA,EAAQ3D,MAAQ,EAC/D6D,EAAW/D,KAAOkE,EAAkBL,EAAUA,EAAQ7D,KAAO,EAC7D+D,EAAW5D,OAAS+D,EAAkBL,EAAUA,EAAQ1D,OAAS,EACjE4D,EAAW9D,QAAUiE,EAAkBL,EAAUA,EAAQ5D,QAAU,EAE5D8D,EAGT,SAASI,GAAQC,GAIf,OAHYA,EAAKtD,MACJsD,EAAKvD,OAcpB,SAASwD,GAAqBC,EAAWC,EAASX,EAAQnG,EAAWqG,GACnE,IAAID,EAAUlU,UAAUwD,OAAS,QAAsBmM,IAAjB3P,UAAU,GAAmBA,UAAU,GAAK,EAElF,IAAmC,IAA/B2U,EAAUhN,QAAQ,QACpB,OAAOgN,EAGT,IAAIP,EAAaJ,EAAcC,EAAQnG,EAAWoG,EAASC,GAEvDU,EAAQ,CACVxE,IAAK,CACHc,MAAOiD,EAAWjD,MAClBD,OAAQ0D,EAAQvE,IAAM+D,EAAW/D,KAEnCG,MAAO,CACLW,MAAOiD,EAAW5D,MAAQoE,EAAQpE,MAClCU,OAAQkD,EAAWlD,QAErBZ,OAAQ,CACNa,MAAOiD,EAAWjD,MAClBD,OAAQkD,EAAW9D,OAASsE,EAAQtE,QAEtCC,KAAM,CACJY,MAAOyD,EAAQrE,KAAO6D,EAAW7D,KACjCW,OAAQkD,EAAWlD,SAInB4D,EAAcnX,OAAOoX,KAAKF,GAAOG,KAAI,SAAUlD,GACjD,OAAOrL,EAAS,CACdqL,IAAKA,GACJ+C,EAAM/C,GAAM,CACbmD,KAAMT,GAAQK,EAAM/C,SAErBoD,MAAK,SAAUC,EAAGC,GACnB,OAAOA,EAAEH,KAAOE,EAAEF,QAGhBI,EAAgBP,EAAYxK,QAAO,SAAUgL,GAC/C,IAAInE,EAAQmE,EAAMnE,MACdD,EAASoE,EAAMpE,OACnB,OAAOC,GAAS8C,EAAO1B,aAAerB,GAAU+C,EAAOzB,gBAGrD+C,EAAoBF,EAAc7R,OAAS,EAAI6R,EAAc,GAAGvD,IAAMgD,EAAY,GAAGhD,IAErF0D,EAAYb,EAAU9X,MAAM,KAAK,GAErC,OAAO0Y,GAAqBC,EAAY,IAAMA,EAAY,IAa5D,SAASC,GAAoBC,EAAOzB,EAAQnG,GAC1C,IAAI+E,EAAgB7S,UAAUwD,OAAS,QAAsBmM,IAAjB3P,UAAU,GAAmBA,UAAU,GAAK,KAEpF2V,EAAqB9C,EAAgBgB,EAA6BI,GAAUtF,EAAuBsF,EAAQpG,EAAiBC,IAChI,OAAO8E,EAAqC9E,EAAW6H,EAAoB9C,GAU7E,SAAS+C,GAAc7Z,GACrB,IACI2U,EADS3U,EAAQkR,cAAcC,YACfC,iBAAiBpR,GACjC8Z,EAAIlZ,WAAW+T,EAAO0C,WAAa,GAAKzW,WAAW+T,EAAOoF,cAAgB,GAC1EC,EAAIpZ,WAAW+T,EAAO2C,YAAc,GAAK1W,WAAW+T,EAAOsF,aAAe,GAK9E,MAJa,CACX7E,MAAOpV,EAAQ2W,YAAcqD,EAC7B7E,OAAQnV,EAAQgB,aAAe8Y,GAYnC,SAASI,GAAqBtB,GAC5B,IAAIuB,EAAO,CAAE3F,KAAM,QAASC,MAAO,OAAQF,OAAQ,MAAOD,IAAK,UAC/D,OAAOsE,EAAUwB,QAAQ,0BAA0B,SAAUC,GAC3D,OAAOF,EAAKE,MAchB,SAASC,GAAiBpC,EAAQqC,EAAkB3B,GAClDA,EAAYA,EAAU9X,MAAM,KAAK,GAGjC,IAAI0Z,EAAaX,GAAc3B,GAG3BuC,EAAgB,CAClBrF,MAAOoF,EAAWpF,MAClBD,OAAQqF,EAAWrF,QAIjBuF,GAAoD,IAA1C,CAAC,QAAS,QAAQ9O,QAAQgN,GACpC+B,EAAWD,EAAU,MAAQ,OAC7BE,EAAgBF,EAAU,OAAS,MACnCG,EAAcH,EAAU,SAAW,QACnCI,EAAwBJ,EAAqB,QAAX,SAStC,OAPAD,EAAcE,GAAYJ,EAAiBI,GAAYJ,EAAiBM,GAAe,EAAIL,EAAWK,GAAe,EAEnHJ,EAAcG,GADZhC,IAAcgC,EACeL,EAAiBK,GAAiBJ,EAAWM,GAE7CP,EAAiBL,GAAqBU,IAGhEH,EAYT,SAASM,GAAKC,EAAKC,GAEjB,OAAIC,MAAMrZ,UAAUkZ,KACXC,EAAID,KAAKE,GAIXD,EAAIzM,OAAO0M,GAAO,GAqC3B,SAASE,GAAaC,EAAW1V,EAAM2V,GAoBrC,YAnB8BzH,IAATyH,EAAqBD,EAAYA,EAAU/T,MAAM,EA1BxE,SAAmB2T,EAAKM,EAAMrZ,GAE5B,GAAIiZ,MAAMrZ,UAAU0Z,UAClB,OAAOP,EAAIO,WAAU,SAAUC,GAC7B,OAAOA,EAAIF,KAAUrZ,KAKzB,IAAIG,EAAQ2Y,GAAKC,GAAK,SAAU3Z,GAC9B,OAAOA,EAAIia,KAAUrZ,KAEvB,OAAO+Y,EAAIpP,QAAQxJ,GAcsDmZ,CAAUH,EAAW,OAAQC,KAEvFI,SAAQ,SAAUpH,GAC3BA,EAAmB,UAErBqH,QAAQC,KAAK,yDAEf,IAAIvY,EAAKiR,EAAmB,UAAKA,EAASjR,GACtCiR,EAASuH,SAAW7K,EAAW3N,KAIjCsC,EAAK2Q,QAAQ6B,OAAS9B,EAAc1Q,EAAK2Q,QAAQ6B,QACjDxS,EAAK2Q,QAAQtE,UAAYqE,EAAc1Q,EAAK2Q,QAAQtE,WAEpDrM,EAAOtC,EAAGsC,EAAM2O,OAIb3O,EAUT,SAASmW,KAEP,IAAI5c,KAAK0a,MAAMmC,YAAf,CAIA,IAAIpW,EAAO,CACT4P,SAAUrW,KACV0V,OAAQ,GACRoH,YAAa,GACbC,WAAY,GACZC,SAAS,EACT5F,QAAS,IAIX3Q,EAAK2Q,QAAQtE,UAAY2H,GAAoBza,KAAK0a,MAAO1a,KAAKiZ,OAAQjZ,KAAK8S,UAAW9S,KAAKid,QAAQC,eAKnGzW,EAAKkT,UAAYD,GAAqB1Z,KAAKid,QAAQtD,UAAWlT,EAAK2Q,QAAQtE,UAAW9S,KAAKiZ,OAAQjZ,KAAK8S,UAAW9S,KAAKid,QAAQd,UAAUgB,KAAKhE,kBAAmBnZ,KAAKid,QAAQd,UAAUgB,KAAKjE,SAG9LzS,EAAK2W,kBAAoB3W,EAAKkT,UAE9BlT,EAAKyW,cAAgBld,KAAKid,QAAQC,cAGlCzW,EAAK2Q,QAAQ6B,OAASoC,GAAiBrb,KAAKiZ,OAAQxS,EAAK2Q,QAAQtE,UAAWrM,EAAKkT,WAEjFlT,EAAK2Q,QAAQ6B,OAAOoE,SAAWrd,KAAKid,QAAQC,cAAgB,QAAU,WAGtEzW,EAAOyV,GAAalc,KAAKmc,UAAW1V,GAI/BzG,KAAK0a,MAAM4C,UAIdtd,KAAKid,QAAQM,SAAS9W,IAHtBzG,KAAK0a,MAAM4C,WAAY,EACvBtd,KAAKid,QAAQO,SAAS/W,KAY1B,SAASgX,GAAkBtB,EAAWuB,GACpC,OAAOvB,EAAUwB,MAAK,SAAUlE,GAC9B,IAAImE,EAAOnE,EAAKmE,KAEhB,OADcnE,EAAKkD,SACDiB,IAASF,KAW/B,SAASG,GAAyBnb,GAIhC,IAHA,IAAIob,EAAW,EAAC,EAAO,KAAM,SAAU,MAAO,KAC1CC,EAAYrb,EAASsb,OAAO,GAAGxa,cAAgBd,EAAS0F,MAAM,GAEzDE,EAAI,EAAGA,EAAIwV,EAAStV,OAAQF,IAAK,CACxC,IAAI7H,EAASqd,EAASxV,GAClB2V,EAAUxd,EAAS,GAAKA,EAASsd,EAAYrb,EACjD,GAA4C,oBAAjC9B,SAAS4R,KAAKnC,MAAM4N,GAC7B,OAAOA,EAGX,OAAO,KAQT,SAASC,KAsBP,OArBAle,KAAK0a,MAAMmC,aAAc,EAGrBY,GAAkBzd,KAAKmc,UAAW,gBACpCnc,KAAKiZ,OAAOkF,gBAAgB,eAC5Bne,KAAKiZ,OAAO5I,MAAMgN,SAAW,GAC7Brd,KAAKiZ,OAAO5I,MAAMgF,IAAM,GACxBrV,KAAKiZ,OAAO5I,MAAMkF,KAAO,GACzBvV,KAAKiZ,OAAO5I,MAAMmF,MAAQ,GAC1BxV,KAAKiZ,OAAO5I,MAAMiF,OAAS,GAC3BtV,KAAKiZ,OAAO5I,MAAM+N,WAAa,GAC/Bpe,KAAKiZ,OAAO5I,MAAMwN,GAAyB,cAAgB,IAG7D7d,KAAKqe,wBAIDre,KAAKid,QAAQqB,iBACfte,KAAKiZ,OAAOlV,WAAWwa,YAAYve,KAAKiZ,QAEnCjZ,KAQT,SAASwe,GAAUzd,GACjB,IAAIkR,EAAgBlR,EAAQkR,cAC5B,OAAOA,EAAgBA,EAAcC,YAAchK,OAoBrD,SAASuW,GAAoB3L,EAAWmK,EAASvC,EAAOgE,GAEtDhE,EAAMgE,YAAcA,EACpBF,GAAU1L,GAAW6L,iBAAiB,SAAUjE,EAAMgE,YAAa,CAAEE,SAAS,IAG9E,IAAIC,EAAgBtM,EAAgBO,GAKpC,OA5BF,SAASgM,EAAsB7G,EAAc3T,EAAOya,EAAUC,GAC5D,IAAIC,EAAmC,SAA1BhH,EAAa5F,SACtB1N,EAASsa,EAAShH,EAAahG,cAAcC,YAAc+F,EAC/DtT,EAAOga,iBAAiBra,EAAOya,EAAU,CAAEH,SAAS,IAE/CK,GACHH,EAAsBvM,EAAgB5N,EAAOZ,YAAaO,EAAOya,EAAUC,GAE7EA,EAAcvP,KAAK9K,GAgBnBma,CAAsBD,EAAe,SAAUnE,EAAMgE,YAAahE,EAAMsE,eACxEtE,EAAMmE,cAAgBA,EACtBnE,EAAMwE,eAAgB,EAEfxE,EAST,SAASyE,KACFnf,KAAK0a,MAAMwE,gBACdlf,KAAK0a,MAAQ+D,GAAoBze,KAAK8S,UAAW9S,KAAKid,QAASjd,KAAK0a,MAAO1a,KAAKof,iBAkCpF,SAASf,KAxBT,IAA8BvL,EAAW4H,EAyBnC1a,KAAK0a,MAAMwE,gBACbG,qBAAqBrf,KAAKof,gBAC1Bpf,KAAK0a,OA3BqB5H,EA2BQ9S,KAAK8S,UA3BF4H,EA2Ba1a,KAAK0a,MAzBzD8D,GAAU1L,GAAWwM,oBAAoB,SAAU5E,EAAMgE,aAGzDhE,EAAMsE,cAAcxC,SAAQ,SAAU7X,GACpCA,EAAO2a,oBAAoB,SAAU5E,EAAMgE,gBAI7ChE,EAAMgE,YAAc,KACpBhE,EAAMsE,cAAgB,GACtBtE,EAAMmE,cAAgB,KACtBnE,EAAMwE,eAAgB,EACfxE,IAwBT,SAAS6E,GAAUC,GACjB,MAAa,KAANA,IAAaC,MAAM9d,WAAW6d,KAAOE,SAASF,GAWvD,SAASG,GAAU5e,EAAS2U,GAC1B/S,OAAOoX,KAAKrE,GAAQ8G,SAAQ,SAAUH,GACpC,IAAIuD,EAAO,IAEkE,IAAzE,CAAC,QAAS,SAAU,MAAO,QAAS,SAAU,QAAQjT,QAAQ0P,IAAgBkD,GAAU7J,EAAO2G,MACjGuD,EAAO,MAET7e,EAAQsP,MAAMgM,GAAQ3G,EAAO2G,GAAQuD,KAgIzC,IAAIC,GAAYxO,GAAa,WAAW/N,KAAK6G,UAAUqH,WA8GvD,SAASsO,GAAmB3D,EAAW4D,EAAgBC,GACrD,IAAIC,EAAanE,GAAKK,GAAW,SAAU1C,GAEzC,OADWA,EAAKmE,OACAmC,KAGdG,IAAeD,GAAc9D,EAAUwB,MAAK,SAAUvI,GACxD,OAAOA,EAASwI,OAASoC,GAAiB5K,EAASuH,SAAWvH,EAAStB,MAAQmM,EAAWnM,SAG5F,IAAKoM,EAAY,CACf,IAAIC,EAAc,IAAMJ,EAAiB,IACrCK,EAAY,IAAMJ,EAAgB,IACtCvD,QAAQC,KAAK0D,EAAY,4BAA8BD,EAAc,4DAA8DA,EAAc,KAEnJ,OAAOD,EAoIT,IAAIG,GAAa,CAAC,aAAc,OAAQ,WAAY,YAAa,MAAO,UAAW,cAAe,QAAS,YAAa,aAAc,SAAU,eAAgB,WAAY,OAAQ,cAGhLC,GAAkBD,GAAWjY,MAAM,GAYvC,SAASmY,GAAU5G,GACjB,IAAI6G,EAAUxb,UAAUwD,OAAS,QAAsBmM,IAAjB3P,UAAU,IAAmBA,UAAU,GAEzEoG,EAAQkV,GAAgB3T,QAAQgN,GAChCoC,EAAMuE,GAAgBlY,MAAMgD,EAAQ,GAAGqV,OAAOH,GAAgBlY,MAAM,EAAGgD,IAC3E,OAAOoV,EAAUzE,EAAI2E,UAAY3E,EAGnC,IAAI4E,GACI,OADJA,GAES,YAFTA,GAGgB,mBAiMpB,SAASC,GAAYjI,EAAQ6C,EAAeF,EAAkBuF,GAC5D,IAAIzJ,EAAU,CAAC,EAAG,GAKd0J,GAA0D,IAA9C,CAAC,QAAS,QAAQnU,QAAQkU,GAItCE,EAAYpI,EAAO9W,MAAM,WAAWmY,KAAI,SAAUgH,GACpD,OAAOA,EAAK7f,UAKV8f,EAAUF,EAAUpU,QAAQmP,GAAKiF,GAAW,SAAUC,GACxD,OAAgC,IAAzBA,EAAKE,OAAO,YAGjBH,EAAUE,KAAiD,IAArCF,EAAUE,GAAStU,QAAQ,MACnD8P,QAAQC,KAAK,gFAKf,IAAIyE,EAAa,cACbC,GAAmB,IAAbH,EAAiB,CAACF,EAAU3Y,MAAM,EAAG6Y,GAASR,OAAO,CAACM,EAAUE,GAASpf,MAAMsf,GAAY,KAAM,CAACJ,EAAUE,GAASpf,MAAMsf,GAAY,IAAIV,OAAOM,EAAU3Y,MAAM6Y,EAAU,KAAO,CAACF,GAqC9L,OAlCAK,EAAMA,EAAIpH,KAAI,SAAUqH,EAAIjW,GAE1B,IAAIwQ,GAAyB,IAAVxQ,GAAe0V,EAAYA,GAAa,SAAW,QAClEQ,GAAoB,EACxB,OAAOD,EAGNE,QAAO,SAAUpH,EAAGC,GACnB,MAAwB,KAApBD,EAAEA,EAAE3R,OAAS,KAAwC,IAA3B,CAAC,IAAK,KAAKmE,QAAQyN,IAC/CD,EAAEA,EAAE3R,OAAS,GAAK4R,EAClBkH,GAAoB,EACbnH,GACEmH,GACTnH,EAAEA,EAAE3R,OAAS,IAAM4R,EACnBkH,GAAoB,EACbnH,GAEAA,EAAEsG,OAAOrG,KAEjB,IAEFJ,KAAI,SAAUwH,GACb,OAxGN,SAAiBA,EAAK5F,EAAaJ,EAAeF,GAEhD,IAAIzZ,EAAQ2f,EAAIre,MAAM,6BAClBH,GAASnB,EAAM,GACf+d,EAAO/d,EAAM,GAGjB,IAAKmB,EACH,OAAOwe,EAGT,GAA0B,IAAtB5B,EAAKjT,QAAQ,KAAY,CAC3B,IAAI5L,OAAU,EACd,OAAQ6e,GACN,IAAK,KACH7e,EAAUya,EACV,MACF,IAAK,IACL,IAAK,KACL,QACEza,EAAUua,EAId,OADWnE,EAAcpW,GACb6a,GAAe,IAAM5Y,EAC5B,GAAa,OAAT4c,GAA0B,OAATA,EAAe,CAQzC,OALa,OAATA,EACKlf,KAAKsV,IAAIpV,SAAS8C,gBAAgB8T,aAActP,OAAOwQ,aAAe,GAEtEhY,KAAKsV,IAAIpV,SAAS8C,gBAAgB6T,YAAarP,OAAOuQ,YAAc,IAE/D,IAAMzV,EAIpB,OAAOA,EAmEEye,CAAQD,EAAK5F,EAAaJ,EAAeF,UAKhDkB,SAAQ,SAAU6E,EAAIjW,GACxBiW,EAAG7E,SAAQ,SAAUwE,EAAMU,GACrBnC,GAAUyB,KACZ5J,EAAQhM,IAAU4V,GAA2B,MAAnBK,EAAGK,EAAS,IAAc,EAAI,UAIvDtK,EA2OT,IAkWIuK,GAAW,CAKbhI,UAAW,SAMXuD,eAAe,EAMfgC,eAAe,EAOfZ,iBAAiB,EAQjBd,SAAU,aAUVD,SAAU,aAOVpB,UAnZc,CASdyF,MAAO,CAEL9N,MAAO,IAEP6I,SAAS,EAETxY,GA9HJ,SAAesC,GACb,IAAIkT,EAAYlT,EAAKkT,UACjBkH,EAAgBlH,EAAU9X,MAAM,KAAK,GACrCggB,EAAiBlI,EAAU9X,MAAM,KAAK,GAG1C,GAAIggB,EAAgB,CAClB,IAAIC,EAAgBrb,EAAK2Q,QACrBtE,EAAYgP,EAAchP,UAC1BmG,EAAS6I,EAAc7I,OAEvB8I,GAA2D,IAA9C,CAAC,SAAU,OAAOpV,QAAQkU,GACvCnM,EAAOqN,EAAa,OAAS,MAC7BnG,EAAcmG,EAAa,QAAU,SAErCC,EAAe,CACjB/V,MAAO4K,EAAe,GAAInC,EAAM5B,EAAU4B,IAC1CpI,IAAKuK,EAAe,GAAInC,EAAM5B,EAAU4B,GAAQ5B,EAAU8I,GAAe3C,EAAO2C,KAGlFnV,EAAK2Q,QAAQ6B,OAASxN,EAAS,GAAIwN,EAAQ+I,EAAaH,IAG1D,OAAOpb,IAgJPkS,OAAQ,CAEN7E,MAAO,IAEP6I,SAAS,EAETxY,GA7RJ,SAAgBsC,EAAMgT,GACpB,IAAId,EAASc,EAAKd,OACdgB,EAAYlT,EAAKkT,UACjBmI,EAAgBrb,EAAK2Q,QACrB6B,EAAS6I,EAAc7I,OACvBnG,EAAYgP,EAAchP,UAE1B+N,EAAgBlH,EAAU9X,MAAM,KAAK,GAErCuV,OAAU,EAsBd,OApBEA,EADEmI,IAAW5G,GACH,EAAEA,EAAQ,GAEViI,GAAYjI,EAAQM,EAAQnG,EAAW+N,GAG7B,SAAlBA,GACF5H,EAAO5D,KAAO+B,EAAQ,GACtB6B,EAAO1D,MAAQ6B,EAAQ,IACI,UAAlByJ,GACT5H,EAAO5D,KAAO+B,EAAQ,GACtB6B,EAAO1D,MAAQ6B,EAAQ,IACI,QAAlByJ,GACT5H,EAAO1D,MAAQ6B,EAAQ,GACvB6B,EAAO5D,KAAO+B,EAAQ,IACK,WAAlByJ,IACT5H,EAAO1D,MAAQ6B,EAAQ,GACvB6B,EAAO5D,KAAO+B,EAAQ,IAGxB3Q,EAAKwS,OAASA,EACPxS,GAkQLkS,OAAQ,GAoBVsJ,gBAAiB,CAEfnO,MAAO,IAEP6I,SAAS,EAETxY,GAlRJ,SAAyBsC,EAAMwW,GAC7B,IAAI9D,EAAoB8D,EAAQ9D,mBAAqB9F,EAAgB5M,EAAK4P,SAAS4C,QAK/ExS,EAAK4P,SAASvD,YAAcqG,IAC9BA,EAAoB9F,EAAgB8F,IAMtC,IAAI+I,EAAgBrE,GAAyB,aACzCsE,EAAe1b,EAAK4P,SAAS4C,OAAO5I,MACpCgF,EAAM8M,EAAa9M,IACnBE,EAAO4M,EAAa5M,KACpB6M,EAAYD,EAAaD,GAE7BC,EAAa9M,IAAM,GACnB8M,EAAa5M,KAAO,GACpB4M,EAAaD,GAAiB,GAE9B,IAAI9I,EAAaJ,EAAcvS,EAAK4P,SAAS4C,OAAQxS,EAAK4P,SAASvD,UAAWmK,EAAQ/D,QAASC,EAAmB1S,EAAKyW,eAIvHiF,EAAa9M,IAAMA,EACnB8M,EAAa5M,KAAOA,EACpB4M,EAAaD,GAAiBE,EAE9BnF,EAAQ7D,WAAaA,EAErB,IAAItF,EAAQmJ,EAAQoF,SAChBpJ,EAASxS,EAAK2Q,QAAQ6B,OAEtB+C,EAAQ,CACVsG,QAAS,SAAiB3I,GACxB,IAAI3W,EAAQiW,EAAOU,GAInB,OAHIV,EAAOU,GAAaP,EAAWO,KAAesD,EAAQsF,sBACxDvf,EAAQtC,KAAKsV,IAAIiD,EAAOU,GAAYP,EAAWO,KAE1C9C,EAAe,GAAI8C,EAAW3W,IAEvCwf,UAAW,SAAmB7I,GAC5B,IAAI+B,EAAyB,UAAd/B,EAAwB,OAAS,MAC5C3W,EAAQiW,EAAOyC,GAInB,OAHIzC,EAAOU,GAAaP,EAAWO,KAAesD,EAAQsF,sBACxDvf,EAAQtC,KAAK+hB,IAAIxJ,EAAOyC,GAAWtC,EAAWO,IAA4B,UAAdA,EAAwBV,EAAO9C,MAAQ8C,EAAO/C,UAErGW,EAAe,GAAI6E,EAAU1Y,KAWxC,OAPA8Q,EAAM0I,SAAQ,SAAU7C,GACtB,IAAIjF,GAA+C,IAAxC,CAAC,OAAQ,OAAO/H,QAAQgN,GAAoB,UAAY,YACnEV,EAASxN,EAAS,GAAIwN,EAAQ+C,EAAMtH,GAAMiF,OAG5ClT,EAAK2Q,QAAQ6B,OAASA,EAEfxS,GA2NL4b,SAAU,CAAC,OAAQ,QAAS,MAAO,UAOnCnJ,QAAS,EAMTC,kBAAmB,gBAYrBuJ,aAAc,CAEZ5O,MAAO,IAEP6I,SAAS,EAETxY,GAlgBJ,SAAsBsC,GACpB,IAAIqb,EAAgBrb,EAAK2Q,QACrB6B,EAAS6I,EAAc7I,OACvBnG,EAAYgP,EAAchP,UAE1B6G,EAAYlT,EAAKkT,UAAU9X,MAAM,KAAK,GACtC8gB,EAAQjiB,KAAKiiB,MACbZ,GAAuD,IAA1C,CAAC,MAAO,UAAUpV,QAAQgN,GACvCjF,EAAOqN,EAAa,QAAU,SAC9Ba,EAASb,EAAa,OAAS,MAC/BnG,EAAcmG,EAAa,QAAU,SASzC,OAPI9I,EAAOvE,GAAQiO,EAAM7P,EAAU8P,MACjCnc,EAAK2Q,QAAQ6B,OAAO2J,GAAUD,EAAM7P,EAAU8P,IAAW3J,EAAO2C,IAE9D3C,EAAO2J,GAAUD,EAAM7P,EAAU4B,MACnCjO,EAAK2Q,QAAQ6B,OAAO2J,GAAUD,EAAM7P,EAAU4B,KAGzCjO,IA4fPoc,MAAO,CAEL/O,MAAO,IAEP6I,SAAS,EAETxY,GApxBJ,SAAesC,EAAMwW,GACnB,IAAI6F,EAGJ,IAAKhD,GAAmBrZ,EAAK4P,SAAS8F,UAAW,QAAS,gBACxD,OAAO1V,EAGT,IAAIsc,EAAe9F,EAAQlc,QAG3B,GAA4B,iBAAjBgiB,GAIT,KAHAA,EAAetc,EAAK4P,SAAS4C,OAAO7X,cAAc2hB,IAIhD,OAAOtc,OAKT,IAAKA,EAAK4P,SAAS4C,OAAOzR,SAASub,GAEjC,OADAtG,QAAQC,KAAK,iEACNjW,EAIX,IAAIkT,EAAYlT,EAAKkT,UAAU9X,MAAM,KAAK,GACtCigB,EAAgBrb,EAAK2Q,QACrB6B,EAAS6I,EAAc7I,OACvBnG,EAAYgP,EAAchP,UAE1BiP,GAAuD,IAA1C,CAAC,OAAQ,SAASpV,QAAQgN,GAEvCpR,EAAMwZ,EAAa,SAAW,QAC9BiB,EAAkBjB,EAAa,MAAQ,OACvCrN,EAAOsO,EAAgB5f,cACvB6f,EAAUlB,EAAa,OAAS,MAChCa,EAASb,EAAa,SAAW,QACjCmB,EAAmBtI,GAAcmI,GAAcxa,GAQ/CuK,EAAU8P,GAAUM,EAAmBjK,EAAOvE,KAChDjO,EAAK2Q,QAAQ6B,OAAOvE,IAASuE,EAAOvE,IAAS5B,EAAU8P,GAAUM,IAG/DpQ,EAAU4B,GAAQwO,EAAmBjK,EAAO2J,KAC9Cnc,EAAK2Q,QAAQ6B,OAAOvE,IAAS5B,EAAU4B,GAAQwO,EAAmBjK,EAAO2J,IAE3Enc,EAAK2Q,QAAQ6B,OAAS9B,EAAc1Q,EAAK2Q,QAAQ6B,QAGjD,IAAIkK,EAASrQ,EAAU4B,GAAQ5B,EAAUvK,GAAO,EAAI2a,EAAmB,EAInE1hB,EAAMwQ,EAAyBvL,EAAK4P,SAAS4C,QAC7CmK,EAAmBzhB,WAAWH,EAAI,SAAWwhB,IAC7CK,EAAmB1hB,WAAWH,EAAI,SAAWwhB,EAAkB,UAC/DM,EAAYH,EAAS1c,EAAK2Q,QAAQ6B,OAAOvE,GAAQ0O,EAAmBC,EAQxE,OALAC,EAAY5iB,KAAKsV,IAAItV,KAAK+hB,IAAIxJ,EAAO1Q,GAAO2a,EAAkBI,GAAY,GAE1E7c,EAAKsc,aAAeA,EACpBtc,EAAK2Q,QAAQyL,OAAmChM,EAA1BiM,EAAsB,GAAwCpO,EAAMhU,KAAK6iB,MAAMD,IAAazM,EAAeiM,EAAqBG,EAAS,IAAKH,GAE7Jrc,GA8sBL1F,QAAS,aAcXoc,KAAM,CAEJrJ,MAAO,IAEP6I,SAAS,EAETxY,GA5oBJ,SAAcsC,EAAMwW,GAElB,GAAIQ,GAAkBhX,EAAK4P,SAAS8F,UAAW,SAC7C,OAAO1V,EAGT,GAAIA,EAAKuW,SAAWvW,EAAKkT,YAAclT,EAAK2W,kBAE1C,OAAO3W,EAGT,IAAI2S,EAAaJ,EAAcvS,EAAK4P,SAAS4C,OAAQxS,EAAK4P,SAASvD,UAAWmK,EAAQ/D,QAAS+D,EAAQ9D,kBAAmB1S,EAAKyW,eAE3HvD,EAAYlT,EAAKkT,UAAU9X,MAAM,KAAK,GACtC2hB,EAAoBvI,GAAqBtB,GACzCa,EAAY/T,EAAKkT,UAAU9X,MAAM,KAAK,IAAM,GAE5C4hB,EAAY,GAEhB,OAAQxG,EAAQyG,UACd,KAAK/C,GACH8C,EAAY,CAAC9J,EAAW6J,GACxB,MACF,KAAK7C,GACH8C,EAAYlD,GAAU5G,GACtB,MACF,KAAKgH,GACH8C,EAAYlD,GAAU5G,GAAW,GACjC,MACF,QACE8J,EAAYxG,EAAQyG,SAyDxB,OAtDAD,EAAUjH,SAAQ,SAAUmH,EAAMvY,GAChC,GAAIuO,IAAcgK,GAAQF,EAAUjb,SAAW4C,EAAQ,EACrD,OAAO3E,EAGTkT,EAAYlT,EAAKkT,UAAU9X,MAAM,KAAK,GACtC2hB,EAAoBvI,GAAqBtB,GAEzC,IAAI6B,EAAgB/U,EAAK2Q,QAAQ6B,OAC7B2K,EAAand,EAAK2Q,QAAQtE,UAG1B6P,EAAQjiB,KAAKiiB,MACbkB,EAA4B,SAAdlK,GAAwBgJ,EAAMnH,EAAchG,OAASmN,EAAMiB,EAAWrO,OAAuB,UAAdoE,GAAyBgJ,EAAMnH,EAAcjG,MAAQoN,EAAMiB,EAAWpO,QAAwB,QAAdmE,GAAuBgJ,EAAMnH,EAAclG,QAAUqN,EAAMiB,EAAWvO,MAAsB,WAAdsE,GAA0BgJ,EAAMnH,EAAcnG,KAAOsN,EAAMiB,EAAWtO,QAEjUwO,EAAgBnB,EAAMnH,EAAcjG,MAAQoN,EAAMvJ,EAAW7D,MAC7DwO,EAAiBpB,EAAMnH,EAAchG,OAASmN,EAAMvJ,EAAW5D,OAC/DwO,EAAerB,EAAMnH,EAAcnG,KAAOsN,EAAMvJ,EAAW/D,KAC3D4O,EAAkBtB,EAAMnH,EAAclG,QAAUqN,EAAMvJ,EAAW9D,QAEjE4O,EAAoC,SAAdvK,GAAwBmK,GAA+B,UAAdnK,GAAyBoK,GAAgC,QAAdpK,GAAuBqK,GAA8B,WAAdrK,GAA0BsK,EAG3KlC,GAAuD,IAA1C,CAAC,MAAO,UAAUpV,QAAQgN,GAGvCwK,IAA0BlH,EAAQmH,iBAAmBrC,GAA4B,UAAdvH,GAAyBsJ,GAAiB/B,GAA4B,QAAdvH,GAAuBuJ,IAAmBhC,GAA4B,UAAdvH,GAAyBwJ,IAAiBjC,GAA4B,QAAdvH,GAAuByJ,GAGlQI,IAA8BpH,EAAQqH,0BAA4BvC,GAA4B,UAAdvH,GAAyBuJ,GAAkBhC,GAA4B,QAAdvH,GAAuBsJ,IAAkB/B,GAA4B,UAAdvH,GAAyByJ,IAAoBlC,GAA4B,QAAdvH,GAAuBwJ,GAElRO,EAAmBJ,GAAyBE,GAE5CR,GAAeK,GAAuBK,KAExC9d,EAAKuW,SAAU,GAEX6G,GAAeK,KACjBvK,EAAY8J,EAAUrY,EAAQ,IAG5BmZ,IACF/J,EAvJR,SAA8BA,GAC5B,MAAkB,QAAdA,EACK,QACgB,UAAdA,EACF,MAEFA,EAiJWgK,CAAqBhK,IAGnC/T,EAAKkT,UAAYA,GAAaa,EAAY,IAAMA,EAAY,IAI5D/T,EAAK2Q,QAAQ6B,OAASxN,EAAS,GAAIhF,EAAK2Q,QAAQ6B,OAAQoC,GAAiB5U,EAAK4P,SAAS4C,OAAQxS,EAAK2Q,QAAQtE,UAAWrM,EAAKkT,YAE5HlT,EAAOyV,GAAazV,EAAK4P,SAAS8F,UAAW1V,EAAM,YAGhDA,GA4jBLid,SAAU,OAKVxK,QAAS,EAOTC,kBAAmB,WAQnBiL,gBAAgB,EAQhBE,yBAAyB,GAU3BG,MAAO,CAEL3Q,MAAO,IAEP6I,SAAS,EAETxY,GArQJ,SAAesC,GACb,IAAIkT,EAAYlT,EAAKkT,UACjBkH,EAAgBlH,EAAU9X,MAAM,KAAK,GACrCigB,EAAgBrb,EAAK2Q,QACrB6B,EAAS6I,EAAc7I,OACvBnG,EAAYgP,EAAchP,UAE1B2I,GAAwD,IAA9C,CAAC,OAAQ,SAAS9O,QAAQkU,GAEpC6D,GAA6D,IAA5C,CAAC,MAAO,QAAQ/X,QAAQkU,GAO7C,OALA5H,EAAOwC,EAAU,OAAS,OAAS3I,EAAU+N,IAAkB6D,EAAiBzL,EAAOwC,EAAU,QAAU,UAAY,GAEvHhV,EAAKkT,UAAYsB,GAAqBtB,GACtClT,EAAK2Q,QAAQ6B,OAAS9B,EAAc8B,GAE7BxS,IAkQPoJ,KAAM,CAEJiE,MAAO,IAEP6I,SAAS,EAETxY,GA9TJ,SAAcsC,GACZ,IAAKqZ,GAAmBrZ,EAAK4P,SAAS8F,UAAW,OAAQ,mBACvD,OAAO1V,EAGT,IAAImT,EAAUnT,EAAK2Q,QAAQtE,UACvB6R,EAAQ7I,GAAKrV,EAAK4P,SAAS8F,WAAW,SAAU/G,GAClD,MAAyB,oBAAlBA,EAASwI,QACfxE,WAEH,GAAIQ,EAAQtE,OAASqP,EAAMtP,KAAOuE,EAAQrE,KAAOoP,EAAMnP,OAASoE,EAAQvE,IAAMsP,EAAMrP,QAAUsE,EAAQpE,MAAQmP,EAAMpP,KAAM,CAExH,IAAkB,IAAd9O,EAAKoJ,KACP,OAAOpJ,EAGTA,EAAKoJ,MAAO,EACZpJ,EAAKsW,WAAW,uBAAyB,OACpC,CAEL,IAAkB,IAAdtW,EAAKoJ,KACP,OAAOpJ,EAGTA,EAAKoJ,MAAO,EACZpJ,EAAKsW,WAAW,wBAAyB,EAG3C,OAAOtW,IAoTPme,aAAc,CAEZ9Q,MAAO,IAEP6I,SAAS,EAETxY,GAtgCJ,SAAsBsC,EAAMwW,GAC1B,IAAIpC,EAAIoC,EAAQpC,EACZE,EAAIkC,EAAQlC,EACZ9B,EAASxS,EAAK2Q,QAAQ6B,OAItB4L,EAA8B/I,GAAKrV,EAAK4P,SAAS8F,WAAW,SAAU/G,GACxE,MAAyB,eAAlBA,EAASwI,QACfkH,qBACiCnQ,IAAhCkQ,GACFpI,QAAQC,KAAK,iIAEf,IAAIoI,OAAkDnQ,IAAhCkQ,EAA4CA,EAA8B5H,EAAQ6H,gBAEpGvR,EAAeF,EAAgB5M,EAAK4P,SAAS4C,QAC7C8L,EAAmBrU,EAAsB6C,GAGzCmC,EAAS,CACX2H,SAAUpE,EAAOoE,UAGfjG,EA9DN,SAA2B3Q,EAAMue,GAC/B,IAAIlD,EAAgBrb,EAAK2Q,QACrB6B,EAAS6I,EAAc7I,OACvBnG,EAAYgP,EAAchP,UAC1ByQ,EAAQ7iB,KAAK6iB,MACbZ,EAAQjiB,KAAKiiB,MAEbsC,EAAU,SAAiBC,GAC7B,OAAOA,GAGLC,EAAiB5B,EAAMzQ,EAAUqD,OACjCiP,EAAc7B,EAAMtK,EAAO9C,OAE3B4L,GAA4D,IAA/C,CAAC,OAAQ,SAASpV,QAAQlG,EAAKkT,WAC5C0L,GAA+C,IAAjC5e,EAAKkT,UAAUhN,QAAQ,KAIrC2Y,EAAuBN,EAAwBjD,GAAcsD,GAH3CF,EAAiB,GAAMC,EAAc,EAGuC7B,EAAQZ,EAAjEsC,EACrCM,EAAqBP,EAAwBzB,EAAV0B,EAEvC,MAAO,CACL1P,KAAM+P,EANWH,EAAiB,GAAM,GAAKC,EAAc,GAAM,IAMtBC,GAAeL,EAAc/L,EAAO1D,KAAO,EAAI0D,EAAO1D,MACjGF,IAAKkQ,EAAkBtM,EAAO5D,KAC9BC,OAAQiQ,EAAkBtM,EAAO3D,QACjCE,MAAO8P,EAAoBrM,EAAOzD,QAoCtBgQ,CAAkB/e,EAAMyB,OAAOud,iBAAmB,IAAM5F,IAElEjK,EAAc,WAANiF,EAAiB,MAAQ,SACjChF,EAAc,UAANkF,EAAgB,OAAS,QAKjC2K,EAAmB7H,GAAyB,aAW5CtI,OAAO,EACPF,OAAM,EAqBV,GAhBIA,EAJU,WAAVO,EAG4B,SAA1BrC,EAAalB,UACRkB,EAAaiE,aAAeJ,EAAQ9B,QAEpCyP,EAAiB7O,OAASkB,EAAQ9B,OAGrC8B,EAAQ/B,IAIZE,EAFU,UAAVM,EAC4B,SAA1BtC,EAAalB,UACPkB,EAAagE,YAAcH,EAAQ5B,OAEnCuP,EAAiB5O,MAAQiB,EAAQ5B,MAGpC4B,EAAQ7B,KAEbuP,GAAmBY,EACrBhQ,EAAOgQ,GAAoB,eAAiBnQ,EAAO,OAASF,EAAM,SAClEK,EAAOE,GAAS,EAChBF,EAAOG,GAAS,EAChBH,EAAO0I,WAAa,gBACf,CAEL,IAAIuH,EAAsB,WAAV/P,GAAsB,EAAI,EACtCgQ,EAAuB,UAAV/P,GAAqB,EAAI,EAC1CH,EAAOE,GAASP,EAAMsQ,EACtBjQ,EAAOG,GAASN,EAAOqQ,EACvBlQ,EAAO0I,WAAaxI,EAAQ,KAAOC,EAIrC,IAAIkH,EAAa,CACf8I,cAAepf,EAAKkT,WAQtB,OAJAlT,EAAKsW,WAAatR,EAAS,GAAIsR,EAAYtW,EAAKsW,YAChDtW,EAAKiP,OAASjK,EAAS,GAAIiK,EAAQjP,EAAKiP,QACxCjP,EAAKqW,YAAcrR,EAAS,GAAIhF,EAAK2Q,QAAQyL,MAAOpc,EAAKqW,aAElDrW,GAo7BLqe,iBAAiB,EAMjBjK,EAAG,SAMHE,EAAG,SAkBL+K,WAAY,CAEVhS,MAAO,IAEP6I,SAAS,EAETxY,GAzpCJ,SAAoBsC,GApBpB,IAAuB1F,EAASgc,EAoC9B,OAXA4C,GAAUlZ,EAAK4P,SAAS4C,OAAQxS,EAAKiP,QAzBhB3U,EA6BP0F,EAAK4P,SAAS4C,OA7BE8D,EA6BMtW,EAAKsW,WA5BzCpa,OAAOoX,KAAKgD,GAAYP,SAAQ,SAAUH,IAE1B,IADFU,EAAWV,GAErBtb,EAAQ6G,aAAayU,EAAMU,EAAWV,IAEtCtb,EAAQod,gBAAgB9B,MA0BxB5V,EAAKsc,cAAgBpgB,OAAOoX,KAAKtT,EAAKqW,aAAatU,QACrDmX,GAAUlZ,EAAKsc,aAActc,EAAKqW,aAG7BrW,GA2oCLsf,OA9nCJ,SAA0BjT,EAAWmG,EAAQgE,EAAS+I,EAAiBtL,GAErE,IAAIY,EAAmBb,GAAoBC,EAAOzB,EAAQnG,EAAWmK,EAAQC,eAKzEvD,EAAYD,GAAqBuD,EAAQtD,UAAW2B,EAAkBrC,EAAQnG,EAAWmK,EAAQd,UAAUgB,KAAKhE,kBAAmB8D,EAAQd,UAAUgB,KAAKjE,SAQ9J,OANAD,EAAOrR,aAAa,cAAe+R,GAInCgG,GAAU1G,EAAQ,CAAEoE,SAAUJ,EAAQC,cAAgB,QAAU,aAEzDD,GAsnCL6H,qBAAiBnQ,KAuGjBsR,GAAS,WASX,SAASA,EAAOnT,EAAWmG,GACzB,IAAIlZ,EAAQC,KAERid,EAAUjY,UAAUwD,OAAS,QAAsBmM,IAAjB3P,UAAU,GAAmBA,UAAU,GAAK,GAClFoR,EAAepW,KAAMimB,GAErBjmB,KAAKof,eAAiB,WACpB,OAAO8G,sBAAsBnmB,EAAM6c,SAIrC5c,KAAK4c,OAASnL,EAASzR,KAAK4c,OAAO1R,KAAKlL,OAGxCA,KAAKid,QAAUxR,EAAS,GAAIwa,EAAOtE,SAAU1E,GAG7Cjd,KAAK0a,MAAQ,CACXmC,aAAa,EACbS,WAAW,EACX0B,cAAe,IAIjBhf,KAAK8S,UAAYA,GAAaA,EAAU1O,OAAS0O,EAAU,GAAKA,EAChE9S,KAAKiZ,OAASA,GAAUA,EAAO7U,OAAS6U,EAAO,GAAKA,EAGpDjZ,KAAKid,QAAQd,UAAY,GACzBxZ,OAAOoX,KAAKtO,EAAS,GAAIwa,EAAOtE,SAASxF,UAAWc,EAAQd,YAAYK,SAAQ,SAAUoB,GACxF7d,EAAMkd,QAAQd,UAAUyB,GAAQnS,EAAS,GAAIwa,EAAOtE,SAASxF,UAAUyB,IAAS,GAAIX,EAAQd,UAAYc,EAAQd,UAAUyB,GAAQ,OAIpI5d,KAAKmc,UAAYxZ,OAAOoX,KAAK/Z,KAAKid,QAAQd,WAAWnC,KAAI,SAAU4D,GACjE,OAAOnS,EAAS,CACdmS,KAAMA,GACL7d,EAAMkd,QAAQd,UAAUyB,OAG5B1D,MAAK,SAAUC,EAAGC,GACjB,OAAOD,EAAErG,MAAQsG,EAAEtG,SAOrB9T,KAAKmc,UAAUK,SAAQ,SAAUwJ,GAC3BA,EAAgBrJ,SAAW7K,EAAWkU,EAAgBD,SACxDC,EAAgBD,OAAOhmB,EAAM+S,UAAW/S,EAAMkZ,OAAQlZ,EAAMkd,QAAS+I,EAAiBjmB,EAAM2a,UAKhG1a,KAAK4c,SAEL,IAAIsC,EAAgBlf,KAAKid,QAAQiC,cAC7BA,GAEFlf,KAAKmf,uBAGPnf,KAAK0a,MAAMwE,cAAgBA,EAqD7B,OA9CA5I,EAAY2P,EAAQ,CAAC,CACnBnP,IAAK,SACL9T,MAAO,WACL,OAAO4Z,GAAO9Z,KAAK9C,QAEpB,CACD8W,IAAK,UACL9T,MAAO,WACL,OAAOkb,GAAQpb,KAAK9C,QAErB,CACD8W,IAAK,uBACL9T,MAAO,WACL,OAAOmc,GAAqBrc,KAAK9C,QAElC,CACD8W,IAAK,wBACL9T,MAAO,WACL,OAAOqb,GAAsBvb,KAAK9C,UA4B/BimB,EA7HI,GAqJbA,GAAOE,OAA2B,oBAAXje,OAAyBA,OAASke,QAAQC,YACjEJ,GAAO5F,WAAaA,GACpB4F,GAAOtE,SAAWA,GCniFlB,IAAM1c,GAA2B,WAK3BC,GAA2BhF,EAAEiE,GAAGc,IAOhCqhB,GAA2B,IAAIjjB,OAAUkjB,YAgCzC5d,GAAU,CACdgQ,OAAe,EACfwE,MAAe,EACfqJ,SAAe,eACf1T,UAAe,SACf2T,QAAe,UACfC,aAAe,MAGXxd,GAAc,CAClByP,OAAe,2BACfwE,KAAe,UACfqJ,SAAe,mBACf1T,UAAe,mBACf2T,QAAe,SACfC,aAAe,iBASXC,GAAAA,WACJ,SAAAA,EAAY5lB,EAASyB,GACnBxC,KAAKoF,SAAYrE,EACjBf,KAAK4mB,QAAY,KACjB5mB,KAAK+J,QAAY/J,KAAKgK,WAAWxH,GACjCxC,KAAK6mB,MAAY7mB,KAAK8mB,kBACtB9mB,KAAK+mB,UAAY/mB,KAAKgnB,gBAEtBhnB,KAAKwK,gDAmBPvD,OAAA,WACE,IAAIjH,KAAKoF,SAAS6hB,WAAY/mB,EAAEF,KAAKoF,UAAUc,SAzEhB,YAyE/B,CAIA,IAAMghB,EAAWhnB,EAAEF,KAAK6mB,OAAO3gB,SA5EA,QA8E/BygB,EAASQ,cAELD,GAIJlnB,KAAK8P,MAAK,OAGZA,KAAA,SAAKsX,GACH,QADsB,IAAnBA,IAAAA,GAAY,KACXpnB,KAAKoF,SAAS6hB,UAAY/mB,EAAEF,KAAKoF,UAAUc,SAzFhB,aAyFiDhG,EAAEF,KAAK6mB,OAAO3gB,SAxF/D,SAwF/B,CAIA,IAAMgH,EAAgB,CACpBA,cAAelN,KAAKoF,UAEhBiiB,EAAYnnB,EAAE8F,MAvGR,mBAuG0BkH,GAChCrH,EAAS8gB,EAASW,sBAAsBtnB,KAAKoF,UAInD,GAFAlF,EAAE2F,GAAQ7D,QAAQqlB,IAEdA,EAAU5hB,qBAAd,CAKA,IAAKzF,KAAK+mB,WAAaK,EAAW,CAKhC,GAAsB,oBAAXnB,GACT,MAAM,IAAIhiB,UAAU,oEAGtB,IAAIsjB,EAAmBvnB,KAAKoF,SAEG,WAA3BpF,KAAK+J,QAAQ+I,UACfyU,EAAmB1hB,EACVzF,EAAK+B,UAAUnC,KAAK+J,QAAQ+I,aACrCyU,EAAmBvnB,KAAK+J,QAAQ+I,UAGa,oBAAlC9S,KAAK+J,QAAQ+I,UAAU1O,SAChCmjB,EAAmBvnB,KAAK+J,QAAQ+I,UAAU,KAOhB,iBAA1B9S,KAAK+J,QAAQyc,UACftmB,EAAE2F,GAAQ+H,SA9HiB,mBAgI7B5N,KAAK4mB,QAAU,IAAIX,GAAOsB,EAAkBvnB,KAAK6mB,MAAO7mB,KAAKwnB,oBAO3D,iBAAkB5mB,SAAS8C,iBACuB,IAAlDxD,EAAE2F,GAAQC,QAnIa,eAmIgB0C,QACzCtI,EAAEU,SAAS4R,MAAM7E,WAAW9G,GAAG,YAAa,KAAM3G,EAAEunB,MAGtDznB,KAAKoF,SAASsC,QACd1H,KAAKoF,SAASwC,aAAa,iBAAiB,GAE5C1H,EAAEF,KAAK6mB,OAAOhf,YApJiB,QAqJ/B3H,EAAE2F,GACCgC,YAtJ4B,QAuJ5B7F,QAAQ9B,EAAE8F,MA9JA,oBA8JmBkH,SAGlC2C,KAAA,WACE,IAAI7P,KAAKoF,SAAS6hB,WAAY/mB,EAAEF,KAAKoF,UAAUc,SA5JhB,aA4JkDhG,EAAEF,KAAK6mB,OAAO3gB,SA3JhE,QA2J/B,CAIA,IAAMgH,EAAgB,CACpBA,cAAelN,KAAKoF,UAEhBsiB,EAAYxnB,EAAE8F,MA5KR,mBA4K0BkH,GAChCrH,EAAS8gB,EAASW,sBAAsBtnB,KAAKoF,UAEnDlF,EAAE2F,GAAQ7D,QAAQ0lB,GAEdA,EAAUjiB,uBAIVzF,KAAK4mB,SACP5mB,KAAK4mB,QAAQ1I,UAGfhe,EAAEF,KAAK6mB,OAAOhf,YA/KiB,QAgL/B3H,EAAE2F,GACCgC,YAjL4B,QAkL5B7F,QAAQ9B,EAAE8F,MA3LC,qBA2LmBkH,SAGnCvH,QAAA,WACEzF,EAAE0F,WAAW5F,KAAKoF,SA5MW,eA6M7BlF,EAAEF,KAAKoF,UAAUoG,IA5MN,gBA6MXxL,KAAKoF,SAAW,KAChBpF,KAAK6mB,MAAQ,KACQ,OAAjB7mB,KAAK4mB,UACP5mB,KAAK4mB,QAAQ1I,UACble,KAAK4mB,QAAU,SAInBhK,OAAA,WACE5c,KAAK+mB,UAAY/mB,KAAKgnB,gBACD,OAAjBhnB,KAAK4mB,SACP5mB,KAAK4mB,QAAQxH,oBAMjB5U,mBAAA,WAAqB,IAAAzK,EAAAC,KACnBE,EAAEF,KAAKoF,UAAUyB,GAhNJ,qBAgNoB,SAACvC,GAChCA,EAAMsC,iBACNtC,EAAMqjB,kBACN5nB,EAAKkH,eAIT+C,WAAA,SAAWxH,GAaT,OAZAA,EAAMiJ,EAAA,GACDzL,KAAK4nB,YAAYjf,QACjBzI,EAAEF,KAAKoF,UAAUqB,OACjBjE,GAGLpC,EAAKkC,gBACH2C,GACAzC,EACAxC,KAAK4nB,YAAY1e,aAGZ1G,KAGTskB,gBAAA,WACE,IAAK9mB,KAAK6mB,MAAO,CACf,IAAMhhB,EAAS8gB,EAASW,sBAAsBtnB,KAAKoF,UAE/CS,IACF7F,KAAK6mB,MAAQhhB,EAAOzE,cA7NG,mBAgO3B,OAAOpB,KAAK6mB,SAGdgB,cAAA,WACE,IAAMC,EAAkB5nB,EAAEF,KAAKoF,SAASrB,YACpC4V,EA/NoB,eA6OxB,OAXImO,EAAgB5hB,SAhPW,UAiP7ByT,EAAYzZ,EAAEF,KAAK6mB,OAAO3gB,SA9OG,uBAUP,UADA,YAwOb4hB,EAAgB5hB,SAnPI,aAoP7ByT,EArOsB,cAsObmO,EAAgB5hB,SApPI,YAqP7ByT,EAtOsB,aAuObzZ,EAAEF,KAAK6mB,OAAO3gB,SArPM,yBAsP7ByT,EA1OsB,cA4OjBA,KAGTqN,cAAA,WACE,OAAO9mB,EAAEF,KAAKoF,UAAUU,QAAQ,WAAW0C,OAAS,KAGtDuf,WAAA,WAAa,IAAAlc,EAAA7L,KACL2Y,EAAS,GAef,MAbmC,mBAAxB3Y,KAAK+J,QAAQ4O,OACtBA,EAAOxU,GAAK,SAACsC,GAMX,OALAA,EAAK2Q,QAAL3L,EAAA,GACKhF,EAAK2Q,QACLvL,EAAK9B,QAAQ4O,OAAOlS,EAAK2Q,QAASvL,EAAKzG,WAAa,IAGlDqB,GAGTkS,EAAOA,OAAS3Y,KAAK+J,QAAQ4O,OAGxBA,KAGT6O,iBAAA,WACE,IAAMd,EAAe,CACnB/M,UAAW3Z,KAAK6nB,gBAChB1L,UAAW,CACTxD,OAAQ3Y,KAAK+nB,aACb5K,KAAM,CACJR,QAAS3c,KAAK+J,QAAQoT,MAExB8E,gBAAiB,CACf9I,kBAAmBnZ,KAAK+J,QAAQyc,YAYtC,MAN6B,WAAzBxmB,KAAK+J,QAAQ0c,UACfC,EAAavK,UAAU2J,WAAa,CAClCnJ,SAAS,IAIblR,EAAA,GACKib,EACA1mB,KAAK+J,QAAQ2c,iBAMbpgB,iBAAP,SAAwB9D,GACtB,OAAOxC,KAAKuG,MAAK,WACf,IAAIE,EAAOvG,EAAEF,MAAMyG,KA3UQ,eAmV3B,GALKA,IACHA,EAAO,IAAIkgB,EAAS3mB,KAHY,iBAAXwC,EAAsBA,EAAS,MAIpDtC,EAAEF,MAAMyG,KAhViB,cAgVFA,IAGH,iBAAXjE,EAAqB,CAC9B,GAA4B,oBAAjBiE,EAAKjE,GACd,MAAM,IAAIyB,UAAJ,oBAAkCzB,EAAlC,KAERiE,EAAKjE,YAKJ2kB,YAAP,SAAmB7iB,GACjB,IAAIA,GApVyB,IAoVfA,EAAMoI,QACH,UAAfpI,EAAM+C,MAxVqB,IAwVD/C,EAAMoI,OAMlC,IAFA,IAAMsb,EAAU,GAAG5f,MAAMtF,KAAKlC,SAASyH,iBArUZ,6BAuUlBC,EAAI,EAAGC,EAAMyf,EAAQxf,OAAQF,EAAIC,EAAKD,IAAK,CAClD,IAAMzC,EAAS8gB,EAASW,sBAAsBU,EAAQ1f,IAChD2f,EAAU/nB,EAAE8nB,EAAQ1f,IAAI7B,KAtWH,eAuWrByG,EAAgB,CACpBA,cAAe8a,EAAQ1f,IAOzB,GAJIhE,GAAwB,UAAfA,EAAM+C,OACjB6F,EAAcgb,WAAa5jB,GAGxB2jB,EAAL,CAIA,IAAME,EAAeF,EAAQpB,MAC7B,GAAK3mB,EAAE2F,GAAQK,SA9Vc,WAkWzB5B,IAAyB,UAAfA,EAAM+C,MAChB,kBAAkB/D,KAAKgB,EAAMK,OAAOsD,UAA2B,UAAf3D,EAAM+C,MAnX/B,IAmXmD/C,EAAMoI,QAChFxM,EAAEsH,SAAS3B,EAAQvB,EAAMK,SAF7B,CAMA,IAAM+iB,EAAYxnB,EAAE8F,MAlXV,mBAkX4BkH,GACtChN,EAAE2F,GAAQ7D,QAAQ0lB,GACdA,EAAUjiB,uBAMV,iBAAkB7E,SAAS8C,iBAC7BxD,EAAEU,SAAS4R,MAAM7E,WAAWnC,IAAI,YAAa,KAAMtL,EAAEunB,MAGvDO,EAAQ1f,GAAGV,aAAa,gBAAiB,SAErCqgB,EAAQrB,SACVqB,EAAQrB,QAAQ1I,UAGlBhe,EAAEioB,GAAcliB,YA1Xa,QA2X7B/F,EAAE2F,GACCI,YA5X0B,QA6X1BjE,QAAQ9B,EAAE8F,MAtYD,qBAsYqBkH,WAI9Boa,sBAAP,SAA6BvmB,GAC3B,IAAI8E,EACE7E,EAAWZ,EAAKU,uBAAuBC,GAM7C,OAJIC,IACF6E,EAASjF,SAASQ,cAAcJ,IAG3B6E,GAAU9E,EAAQgD,cAIpBqkB,uBAAP,SAA8B9jB,GAQ5B,KAAI,kBAAkBhB,KAAKgB,EAAMK,OAAOsD,SAtaX,KAuazB3D,EAAMoI,OAxamB,KAwaQpI,EAAMoI,QApad,KAqa1BpI,EAAMoI,OAtaoB,KAsaYpI,EAAMoI,OAC3CxM,EAAEoE,EAAMK,QAAQmB,QA/YO,kBA+YgB0C,SAAW8d,GAAehjB,KAAKgB,EAAMoI,UAI5E1M,KAAKinB,WAAY/mB,EAAEF,MAAMkG,SA7ZE,YA6Z/B,CAIA,IAAML,EAAW8gB,EAASW,sBAAsBtnB,MAC1CknB,EAAWhnB,EAAE2F,GAAQK,SAjaI,QAma/B,GAAKghB,GArbwB,KAqbZ5iB,EAAMoI,MAAvB,CAOA,GAHApI,EAAMsC,iBACNtC,EAAMqjB,mBAEDT,GAAYA,IA5bY,KA4bC5iB,EAAMoI,OA3bP,KA2bmCpI,EAAMoI,OAMpE,OAlc2B,KA6bvBpI,EAAMoI,OACRxM,EAAE2F,EAAOzE,cArac,6BAqauBY,QAAQ,cAGxD9B,EAAEF,MAAMgC,QAAQ,SAIlB,IAAMqmB,EAAQ,GAAGjgB,MAAMtF,KAAK+C,EAAOwC,iBAxaR,gEAyaxBiH,QAAO,SAACgZ,GAAD,OAAUpoB,EAAEooB,GAAM1jB,GAAG,eAE/B,GAAqB,IAAjByjB,EAAM7f,OAAV,CAIA,IAAI4C,EAAQid,EAAM1b,QAAQrI,EAAMK,QAzcH,KA2czBL,EAAMoI,OAA8BtB,EAAQ,GAC9CA,IA3c2B,KA8czB9G,EAAMoI,OAAgCtB,EAAQid,EAAM7f,OAAS,GAC/D4C,IAGEA,EAAQ,IACVA,EAAQ,GAGVid,EAAMjd,GAAO1D,oDA9Yb,MAjF6B,wCAqF7B,OAAOiB,uCAIP,OAAOO,SAtBLyd,GAsaNzmB,EAAEU,UACCiG,GAvdyB,+BAWG,2BA4cqB8f,GAASyB,wBAC1DvhB,GAxdyB,+BAaG,iBA2cc8f,GAASyB,wBACnDvhB,GAAM0hB,wDAAgD5B,GAASQ,aAC/DtgB,GA3duB,6BAYK,4BA+cmB,SAAUvC,GACxDA,EAAMsC,iBACNtC,EAAMqjB,kBACNhB,GAASrgB,iBAAiBxD,KAAK5C,EAAEF,MAAO,aAEzC6G,GAheuB,6BAaK,kBAmdkB,SAAC2F,GAC9CA,EAAEmb,qBASNznB,EAAEiE,GAAGc,IAAQ0hB,GAASrgB,iBACtBpG,EAAEiE,GAAGc,IAAM6B,YAAc6f,GACzBzmB,EAAEiE,GAAGc,IAAM8B,WAAa,WAEtB,OADA7G,EAAEiE,GAAGc,IAAQC,GACNyhB,GAASrgB,kBClgBlB,IAKMpB,GAAqBhF,EAAEiE,GAAF,MAGrBwE,GAAU,CACd6f,UAAW,EACX3f,UAAW,EACXnB,OAAW,EACXoI,MAAW,GAGP5G,GAAc,CAClBsf,SAAW,mBACX3f,SAAW,UACXnB,MAAW,UACXoI,KAAW,WAqCP2Y,GAAAA,WACJ,SAAAA,EAAY1nB,EAASyB,GACnBxC,KAAK+J,QAAuB/J,KAAKgK,WAAWxH,GAC5CxC,KAAKoF,SAAuBrE,EAC5Bf,KAAK0oB,QAAuB3nB,EAAQK,cAjBR,iBAkB5BpB,KAAK2oB,UAAuB,KAC5B3oB,KAAK4oB,UAAuB,EAC5B5oB,KAAK6oB,oBAAuB,EAC5B7oB,KAAK8oB,sBAAuB,EAC5B9oB,KAAKgP,kBAAuB,EAC5BhP,KAAK+oB,gBAAuB,6BAe9B9hB,OAAA,SAAOiG,GACL,OAAOlN,KAAK4oB,SAAW5oB,KAAK6P,OAAS7P,KAAK8P,KAAK5C,MAGjD4C,KAAA,SAAK5C,GAAe,IAAAnN,EAAAC,KAClB,IAAIA,KAAK4oB,WAAY5oB,KAAKgP,iBAA1B,CAII9O,EAAEF,KAAKoF,UAAUc,SAnDa,UAoDhClG,KAAKgP,kBAAmB,GAG1B,IAAMqY,EAAYnnB,EAAE8F,MArER,gBAqE0B,CACpCkH,cAAAA,IAGFhN,EAAEF,KAAKoF,UAAUpD,QAAQqlB,GAErBrnB,KAAK4oB,UAAYvB,EAAU5hB,uBAI/BzF,KAAK4oB,UAAW,EAEhB5oB,KAAKgpB,kBACLhpB,KAAKipB,gBAELjpB,KAAKkpB,gBAELlpB,KAAKmpB,kBACLnpB,KAAKopB,kBAELlpB,EAAEF,KAAKoF,UAAUyB,GArFI,yBAiBO,0BAuE1B,SAACvC,GAAD,OAAWvE,EAAK8P,KAAKvL,MAGvBpE,EAAEF,KAAK0oB,SAAS7hB,GAxFS,8BAwFmB,WAC1C3G,EAAEH,EAAKqF,UAAUjF,IA1FI,4BA0FuB,SAACmE,GACvCpE,EAAEoE,EAAMK,QAAQC,GAAG7E,EAAKqF,YAC1BrF,EAAK+oB,sBAAuB,SAKlC9oB,KAAKqpB,eAAc,WAAA,OAAMtpB,EAAKupB,aAAapc,WAG7C2C,KAAA,SAAKvL,GAAO,IAAAuH,EAAA7L,KAKV,GAJIsE,GACFA,EAAMsC,iBAGH5G,KAAK4oB,WAAY5oB,KAAKgP,iBAA3B,CAIA,IAAM0Y,EAAYxnB,EAAE8F,MAtHR,iBA0HZ,GAFA9F,EAAEF,KAAKoF,UAAUpD,QAAQ0lB,GAEpB1nB,KAAK4oB,WAAYlB,EAAUjiB,qBAAhC,CAIAzF,KAAK4oB,UAAW,EAChB,IAAMW,EAAarpB,EAAEF,KAAKoF,UAAUc,SA9GF,QA8HlC,GAdIqjB,IACFvpB,KAAKgP,kBAAmB,GAG1BhP,KAAKmpB,kBACLnpB,KAAKopB,kBAELlpB,EAAEU,UAAU4K,IAnIG,oBAqIftL,EAAEF,KAAKoF,UAAUa,YAxHiB,QA0HlC/F,EAAEF,KAAKoF,UAAUoG,IArII,0BAsIrBtL,EAAEF,KAAK0oB,SAASld,IAnIS,8BAqIrB+d,EAAY,CACd,IAAMhoB,EAAsBnB,EAAKkB,iCAAiCtB,KAAKoF,UAEvElF,EAAEF,KAAKoF,UACJjF,IAAIC,EAAKC,gBAAgB,SAACiE,GAAD,OAAWuH,EAAK2d,WAAWllB,MACpDD,qBAAqB9C,QAExBvB,KAAKwpB,kBAIT7jB,QAAA,WACE,CAACuC,OAAQlI,KAAKoF,SAAUpF,KAAK0oB,SAC1BlM,SAAQ,SAACiN,GAAD,OAAiBvpB,EAAEupB,GAAaje,IA/KhC,gBAsLXtL,EAAEU,UAAU4K,IA9JG,oBAgKftL,EAAE0F,WAAW5F,KAAKoF,SAzLK,YA2LvBpF,KAAK+J,QAAuB,KAC5B/J,KAAKoF,SAAuB,KAC5BpF,KAAK0oB,QAAuB,KAC5B1oB,KAAK2oB,UAAuB,KAC5B3oB,KAAK4oB,SAAuB,KAC5B5oB,KAAK6oB,mBAAuB,KAC5B7oB,KAAK8oB,qBAAuB,KAC5B9oB,KAAKgP,iBAAuB,KAC5BhP,KAAK+oB,gBAAuB,QAG9BW,aAAA,WACE1pB,KAAKkpB,mBAKPlf,WAAA,SAAWxH,GAMT,OALAA,EAAMiJ,EAAA,GACD9C,GACAnG,GAELpC,EAAKkC,gBAnNkB,QAmNIE,EAAQ0G,IAC5B1G,KAGTmnB,2BAAA,WAA6B,IAAA3d,EAAAhM,KAC3B,GAA8B,WAA1BA,KAAK+J,QAAQye,SAAuB,CACtC,IAAMoB,EAAqB1pB,EAAE8F,MAlMT,0BAqMpB,GADA9F,EAAEF,KAAKoF,UAAUpD,QAAQ4nB,GACrBA,EAAmBC,iBACrB,OAGF,IAAMC,EAAqB9pB,KAAKoF,SAAS2kB,aAAenpB,SAAS8C,gBAAgB8T,aAE5EsS,IACH9pB,KAAKoF,SAASiL,MAAMuC,UAAY,UAGlC5S,KAAKoF,SAASmC,UAAUkB,IA7LQ,gBA+LhC,IAAMuhB,EAA0B5pB,EAAKkB,iCAAiCtB,KAAK0oB,SAC3ExoB,EAAEF,KAAKoF,UAAUoG,IAAIpL,EAAKC,gBAE1BH,EAAEF,KAAKoF,UAAUjF,IAAIC,EAAKC,gBAAgB,WACxC2L,EAAK5G,SAASmC,UAAUlB,OAnMM,gBAoMzByjB,GACH5pB,EAAE8L,EAAK5G,UAAUjF,IAAIC,EAAKC,gBAAgB,WACxC2L,EAAK5G,SAASiL,MAAMuC,UAAY,MAE/BvO,qBAAqB2H,EAAK5G,SAAU4kB,MAGxC3lB,qBAAqB2lB,GACxBhqB,KAAKoF,SAASsC,aAEd1H,KAAK6P,UAITyZ,aAAA,SAAapc,GAAe,IAAAa,EAAA/N,KACpBupB,EAAarpB,EAAEF,KAAKoF,UAAUc,SArNF,QAsN5B+jB,EAAYjqB,KAAK0oB,QAAU1oB,KAAK0oB,QAAQtnB,cAjNlB,eAiNuD,KAE9EpB,KAAKoF,SAASrB,YACf/D,KAAKoF,SAASrB,WAAW1B,WAAa2R,KAAKkW,cAE7CtpB,SAAS4R,KAAK2X,YAAYnqB,KAAKoF,UAGjCpF,KAAKoF,SAASiL,MAAMoW,QAAU,QAC9BzmB,KAAKoF,SAAS+Y,gBAAgB,eAC9Bne,KAAKoF,SAASwC,aAAa,cAAc,GACzC5H,KAAKoF,SAASwC,aAAa,OAAQ,UAE/B1H,EAAEF,KAAK0oB,SAASxiB,SAvOc,4BAuOqB+jB,EACrDA,EAAU/U,UAAY,EAEtBlV,KAAKoF,SAAS8P,UAAY,EAGxBqU,GACFnpB,EAAK0B,OAAO9B,KAAKoF,UAGnBlF,EAAEF,KAAKoF,UAAUwI,SA5OiB,QA8O9B5N,KAAK+J,QAAQrC,OACf1H,KAAKoqB,gBAGP,IAAMC,EAAanqB,EAAE8F,MAhQR,iBAgQ2B,CACtCkH,cAAAA,IAGIod,EAAqB,WACrBvc,EAAKhE,QAAQrC,OACfqG,EAAK3I,SAASsC,QAEhBqG,EAAKiB,kBAAmB,EACxB9O,EAAE6N,EAAK3I,UAAUpD,QAAQqoB,IAG3B,GAAId,EAAY,CACd,IAAMhoB,EAAsBnB,EAAKkB,iCAAiCtB,KAAK0oB,SAEvExoB,EAAEF,KAAK0oB,SACJvoB,IAAIC,EAAKC,eAAgBiqB,GACzBjmB,qBAAqB9C,QAExB+oB,OAIJF,cAAA,WAAgB,IAAAG,EAAAvqB,KACdE,EAAEU,UACC4K,IAxRY,oBAyRZ3E,GAzRY,oBAyRM,SAACvC,GACd1D,WAAa0D,EAAMK,QACnB4lB,EAAKnlB,WAAad,EAAMK,QACsB,IAA9CzE,EAAEqqB,EAAKnlB,UAAUolB,IAAIlmB,EAAMK,QAAQ6D,QACrC+hB,EAAKnlB,SAASsC,cAKtByhB,gBAAA,WAAkB,IAAAsB,EAAAzqB,KACZA,KAAK4oB,SACP1oB,EAAEF,KAAKoF,UAAUyB,GAjSI,4BAiSsB,SAACvC,GACtCmmB,EAAK1gB,QAAQlB,UA1TE,KA0TUvE,EAAMoI,OACjCpI,EAAMsC,iBACN6jB,EAAK5a,QACK4a,EAAK1gB,QAAQlB,UA7TN,KA6TkBvE,EAAMoI,OACzC+d,EAAKd,gCAGC3pB,KAAK4oB,UACf1oB,EAAEF,KAAKoF,UAAUoG,IA1SI,+BA8SzB4d,gBAAA,WAAkB,IAAAsB,EAAA1qB,KACZA,KAAK4oB,SACP1oB,EAAEgI,QAAQrB,GAlTE,mBAkTe,SAACvC,GAAD,OAAWomB,EAAKhB,aAAaplB,MAExDpE,EAAEgI,QAAQsD,IApTE,sBAwThBge,WAAA,WAAa,IAAAmB,EAAA3qB,KACXA,KAAKoF,SAASiL,MAAMoW,QAAU,OAC9BzmB,KAAKoF,SAASwC,aAAa,eAAe,GAC1C5H,KAAKoF,SAAS+Y,gBAAgB,cAC9Bne,KAAKoF,SAAS+Y,gBAAgB,QAC9Bne,KAAKgP,kBAAmB,EACxBhP,KAAKqpB,eAAc,WACjBnpB,EAAEU,SAAS4R,MAAMvM,YArTe,cAsThC0kB,EAAKC,oBACLD,EAAKE,kBACL3qB,EAAEyqB,EAAKvlB,UAAUpD,QAtUL,yBA0UhB8oB,gBAAA,WACM9qB,KAAK2oB,YACPzoB,EAAEF,KAAK2oB,WAAWtiB,SAClBrG,KAAK2oB,UAAY,SAIrBU,cAAA,SAActK,GAAU,IAAAgM,EAAA/qB,KAChBgrB,EAAU9qB,EAAEF,KAAKoF,UAAUc,SAnUC,QAAA,OAoUZ,GAEtB,GAAIlG,KAAK4oB,UAAY5oB,KAAK+J,QAAQye,SAAU,CA4B1C,GA3BAxoB,KAAK2oB,UAAY/nB,SAASqqB,cAAc,OACxCjrB,KAAK2oB,UAAUuC,UA1UiB,iBA4U5BF,GACFhrB,KAAK2oB,UAAUphB,UAAUkB,IAAIuiB,GAG/B9qB,EAAEF,KAAK2oB,WAAWwC,SAASvqB,SAAS4R,MAEpCtS,EAAEF,KAAKoF,UAAUyB,GA1VE,0BA0VsB,SAACvC,GACpCymB,EAAKjC,qBACPiC,EAAKjC,sBAAuB,EAG1BxkB,EAAMK,SAAWL,EAAM2M,eAI3B8Z,EAAKpB,gCAGHqB,GACF5qB,EAAK0B,OAAO9B,KAAK2oB,WAGnBzoB,EAAEF,KAAK2oB,WAAW/a,SA/Vc,SAiW3BmR,EACH,OAGF,IAAKiM,EAEH,YADAjM,IAIF,IAAMqM,EAA6BhrB,EAAKkB,iCAAiCtB,KAAK2oB,WAE9EzoB,EAAEF,KAAK2oB,WACJxoB,IAAIC,EAAKC,eAAgB0e,GACzB1a,qBAAqB+mB,QACnB,IAAKprB,KAAK4oB,UAAY5oB,KAAK2oB,UAAW,CAC3CzoB,EAAEF,KAAK2oB,WAAW1iB,YAhXc,QAkXhC,IAAMolB,EAAiB,WACrBN,EAAKD,kBACD/L,GACFA,KAIJ,GAAI7e,EAAEF,KAAKoF,UAAUc,SA1XW,QA0XgB,CAC9C,IAAMklB,EAA6BhrB,EAAKkB,iCAAiCtB,KAAK2oB,WAE9EzoB,EAAEF,KAAK2oB,WACJxoB,IAAIC,EAAKC,eAAgBgrB,GACzBhnB,qBAAqB+mB,QAExBC,SAEOtM,GACTA,OASJmK,cAAA,WACE,IAAMY,EACJ9pB,KAAKoF,SAAS2kB,aAAenpB,SAAS8C,gBAAgB8T,cAEnDxX,KAAK6oB,oBAAsBiB,IAC9B9pB,KAAKoF,SAASiL,MAAMib,YAAiBtrB,KAAK+oB,gBAA1C,MAGE/oB,KAAK6oB,qBAAuBiB,IAC9B9pB,KAAKoF,SAASiL,MAAMkb,aAAkBvrB,KAAK+oB,gBAA3C,SAIJ6B,kBAAA,WACE5qB,KAAKoF,SAASiL,MAAMib,YAAc,GAClCtrB,KAAKoF,SAASiL,MAAMkb,aAAe,MAGrCvC,gBAAA,WACE,IAAMhU,EAAOpU,SAAS4R,KAAK9B,wBAC3B1Q,KAAK6oB,mBAAqBnoB,KAAK6iB,MAAMvO,EAAKO,KAAOP,EAAKQ,OAAStN,OAAOuQ,WACtEzY,KAAK+oB,gBAAkB/oB,KAAKwrB,wBAG9BvC,cAAA,WAAgB,IAAAwC,EAAAzrB,KACd,GAAIA,KAAK6oB,mBAAoB,CAG3B,IAAM6C,EAAe,GAAGtjB,MAAMtF,KAAKlC,SAASyH,iBAjalB,sDAkapBsjB,EAAgB,GAAGvjB,MAAMtF,KAAKlC,SAASyH,iBAjanB,gBAoa1BnI,EAAEwrB,GAAcnlB,MAAK,SAAC6E,EAAOrK,GAC3B,IAAM6qB,EAAgB7qB,EAAQsP,MAAMkb,aAC9BM,EAAoB3rB,EAAEa,GAASS,IAAI,iBACzCtB,EAAEa,GACC0F,KAAK,gBAAiBmlB,GACtBpqB,IAAI,gBAAoBG,WAAWkqB,GAAqBJ,EAAK1C,gBAFhE,SAMF7oB,EAAEyrB,GAAeplB,MAAK,SAAC6E,EAAOrK,GAC5B,IAAM+qB,EAAe/qB,EAAQsP,MAAM2K,YAC7B+Q,EAAmB7rB,EAAEa,GAASS,IAAI,gBACxCtB,EAAEa,GACC0F,KAAK,eAAgBqlB,GACrBtqB,IAAI,eAAmBG,WAAWoqB,GAAoBN,EAAK1C,gBAF9D,SAMF,IAAM6C,EAAgBhrB,SAAS4R,KAAKnC,MAAMkb,aACpCM,EAAoB3rB,EAAEU,SAAS4R,MAAMhR,IAAI,iBAC/CtB,EAAEU,SAAS4R,MACR/L,KAAK,gBAAiBmlB,GACtBpqB,IAAI,gBAAoBG,WAAWkqB,GAAqB7rB,KAAK+oB,gBAFhE,MAKF7oB,EAAEU,SAAS4R,MAAM5E,SAvciB,iBA0cpCid,gBAAA,WAEE,IAAMa,EAAe,GAAGtjB,MAAMtF,KAAKlC,SAASyH,iBAnchB,sDAoc5BnI,EAAEwrB,GAAcnlB,MAAK,SAAC6E,EAAOrK,GAC3B,IAAMmY,EAAUhZ,EAAEa,GAAS0F,KAAK,iBAChCvG,EAAEa,GAAS6E,WAAW,iBACtB7E,EAAQsP,MAAMkb,aAAerS,GAAoB,MAInD,IAAM8S,EAAW,GAAG5jB,MAAMtF,KAAKlC,SAASyH,iBA1cZ,gBA2c5BnI,EAAE8rB,GAAUzlB,MAAK,SAAC6E,EAAOrK,GACvB,IAAMkrB,EAAS/rB,EAAEa,GAAS0F,KAAK,gBACT,oBAAXwlB,GACT/rB,EAAEa,GAASS,IAAI,eAAgByqB,GAAQrmB,WAAW,mBAKtD,IAAMsT,EAAUhZ,EAAEU,SAAS4R,MAAM/L,KAAK,iBACtCvG,EAAEU,SAAS4R,MAAM5M,WAAW,iBAC5BhF,SAAS4R,KAAKnC,MAAMkb,aAAerS,GAAoB,MAGzDsS,mBAAA,WACE,IAAMU,EAAYtrB,SAASqqB,cAAc,OACzCiB,EAAUhB,UAtewB,0BAuelCtqB,SAAS4R,KAAK2X,YAAY+B,GAC1B,IAAMC,EAAiBD,EAAUxb,wBAAwByF,MAAQ+V,EAAU3U,YAE3E,OADA3W,SAAS4R,KAAK+L,YAAY2N,GACnBC,KAKF7lB,iBAAP,SAAwB9D,EAAQ0K,GAC9B,OAAOlN,KAAKuG,MAAK,WACf,IAAIE,EAAOvG,EAAEF,MAAMyG,KAnhBE,YAohBfsD,EAAO0B,EAAA,GACR9C,GACAzI,EAAEF,MAAMyG,OACU,iBAAXjE,GAAuBA,EAASA,EAAS,IAQrD,GALKiE,IACHA,EAAO,IAAIgiB,EAAMzoB,KAAM+J,GACvB7J,EAAEF,MAAMyG,KA5hBW,WA4hBIA,IAGH,iBAAXjE,EAAqB,CAC9B,GAA4B,oBAAjBiE,EAAKjE,GACd,MAAM,IAAIyB,UAAJ,oBAAkCzB,EAAlC,KAERiE,EAAKjE,GAAQ0K,QACJnD,EAAQ+F,MACjBrJ,EAAKqJ,KAAK5C,+CA/dd,MAvEuB,wCA2EvB,OAAOvE,SApBL8f,GA2fNvoB,EAAEU,UAAUiG,GAlhBc,0BAYM,yBAsgB2B,SAAUvC,GAAO,IACtEK,EADsEynB,EAAApsB,KAEpEgB,EAAWZ,EAAKU,uBAAuBd,MAEzCgB,IACF2D,EAAS/D,SAASQ,cAAcJ,IAGlC,IAAMwB,EAAStC,EAAEyE,GAAQ8B,KAzjBA,YA0jBrB,SADWgF,EAAA,GAERvL,EAAEyE,GAAQ8B,OACVvG,EAAEF,MAAMyG,QAGM,MAAjBzG,KAAKiI,SAAoC,SAAjBjI,KAAKiI,SAC/B3D,EAAMsC,iBAGR,IAAMwK,EAAUlR,EAAEyE,GAAQxE,IA5iBZ,iBA4iB4B,SAACknB,GACrCA,EAAU5hB,sBAKd2L,EAAQjR,IAnjBM,mBAmjBY,WACpBD,EAAEksB,GAAMxnB,GAAG,aACbwnB,EAAK1kB,cAKX+gB,GAAMniB,iBAAiBxD,KAAK5C,EAAEyE,GAASnC,EAAQxC,SASjDE,EAAEiE,GAAF,MAAaskB,GAAMniB,iBACnBpG,EAAEiE,GAAF,MAAW2C,YAAc2hB,GACzBvoB,EAAEiE,GAAF,MAAW4C,WAAa,WAEtB,OADA7G,EAAEiE,GAAF,MAAae,GACNujB,GAAMniB,kBCxmBf,IAAM+lB,GAAW,CACf,aACA,OACA,OACA,WACA,WACA,SACA,MACA,cAKWC,GAAmB,CAE9BC,IAAK,CAAC,QAAS,MAAO,KAAM,OAAQ,OAJP,kBAK7BpS,EAAG,CAAC,SAAU,OAAQ,QAAS,OAC/BF,KAAM,GACNG,EAAG,GACHoS,GAAI,GACJC,IAAK,GACLC,KAAM,GACNC,IAAK,GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJ7kB,EAAG,GACH8kB,IAAK,CAAC,MAAO,SAAU,MAAO,QAAS,QAAS,UAChDC,GAAI,GACJC,GAAI,GACJC,EAAG,GACHC,IAAK,GACLC,EAAG,GACHC,MAAO,GACPC,KAAM,GACNC,IAAK,GACLC,IAAK,GACLC,OAAQ,GACRC,EAAG,GACHC,GAAI,IAQAC,GAAmB,8DAOnBC,GAAmB,qIAyBlB,SAASC,GAAaC,EAAYC,EAAWC,GAClD,GAA0B,IAAtBF,EAAW5lB,OACb,OAAO4lB,EAGT,GAAIE,GAAoC,mBAAfA,EACvB,OAAOA,EAAWF,GAQpB,IALA,IACMG,GADY,IAAIrmB,OAAOsmB,WACKC,gBAAgBL,EAAY,aACxDM,EAAgB/rB,OAAOoX,KAAKsU,GAC5BrC,EAAW,GAAG5jB,MAAMtF,KAAKyrB,EAAgB/b,KAAKnK,iBAAiB,MAZPsmB,EAAA,SAcrDrmB,EAAOC,GACd,IAAMwQ,EAAKiT,EAAS1jB,GACdsmB,EAAS7V,EAAG1G,SAASjP,cAE3B,IAA0D,IAAtDsrB,EAAc/hB,QAAQoM,EAAG1G,SAASjP,eAGpC,OAFA2V,EAAGhV,WAAWwa,YAAYxF,GAE1B,WAGF,IAAM8V,EAAgB,GAAGzmB,MAAMtF,KAAKiW,EAAGgE,YACjC+R,EAAwB,GAAGrO,OAAO4N,EAAU,MAAQ,GAAIA,EAAUO,IAAW,IAEnFC,EAAcrS,SAAQ,SAAClM,IAlD3B,SAA0BA,EAAMye,GAC9B,IAAMC,EAAW1e,EAAK+B,SAASjP,cAE/B,IAAgD,IAA5C2rB,EAAqBpiB,QAAQqiB,GAC/B,OAAoC,IAAhC3C,GAAS1f,QAAQqiB,IACZ9sB,QAAQoO,EAAK2e,UAAU9rB,MAAM8qB,KAAqB3d,EAAK2e,UAAU9rB,MAAM+qB,KASlF,IAHA,IAAMgB,EAASH,EAAqBzf,QAAO,SAAC6f,GAAD,OAAeA,aAAqB9rB,UAGtEiF,EAAI,EAAGC,EAAM2mB,EAAO1mB,OAAQF,EAAIC,EAAKD,IAC5C,GAAI0mB,EAAS7rB,MAAM+rB,EAAO5mB,IACxB,OAAO,EAIX,OAAO,GA+BE8mB,CAAiB9e,EAAMwe,IAC1B/V,EAAGoF,gBAAgB7N,EAAK+B,cAfrB/J,EAAI,EAAGC,EAAMyjB,EAASxjB,OAAQF,EAAIC,EAAKD,IAAKqmB,EAA5CrmB,GAoBT,OAAOimB,EAAgB/b,KAAK6c,UCxG9B,IAAMpqB,GAAwB,UAIxBC,GAAwBhF,EAAEiE,GAAGc,IAE7BqqB,GAAwB,IAAIjsB,OAAJ,wBAAyC,KACjEksB,GAAwB,CAAC,WAAY,YAAa,cAElDrmB,GAAc,CAClBsmB,UAAoB,UACpBC,SAAoB,SACpBC,MAAoB,4BACpB1tB,QAAoB,SACpB2tB,MAAoB,kBACpB9a,KAAoB,UACpB7T,SAAoB,mBACpB2Y,UAAoB,oBACpBhB,OAAoB,2BACpBiX,UAAoB,2BACpBC,kBAAoB,iBACpBrJ,SAAoB,mBACpBsJ,SAAoB,UACpBxB,WAAoB,kBACpBD,UAAoB,SACpB3H,aAAoB,iBAGhBqJ,GAAgB,CACpBC,KAAS,OACTC,IAAS,MACTC,MAAS,QACTC,OAAS,SACTC,KAAS,QAGLznB,GAAU,CACd6mB,WAAoB,EACpBC,SAAoB,uGAGpBztB,QAAoB,cACpB0tB,MAAoB,GACpBC,MAAoB,EACpB9a,MAAoB,EACpB7T,UAAoB,EACpB2Y,UAAoB,MACpBhB,OAAoB,EACpBiX,WAAoB,EACpBC,kBAAoB,OACpBrJ,SAAoB,eACpBsJ,UAAoB,EACpBxB,WAAoB,KACpBD,UAAoB/B,GACpB5F,aAAoB,MAMhB1gB,GAAQ,CACZqqB,KAAI,kBACJC,OAAM,oBACNC,KAAI,kBACJC,MAAK,mBACLC,SAAQ,sBACRC,MAAK,mBACLC,QAAO,qBACPC,SAAQ,sBACRC,WAAU,wBACVC,WAAU,yBAoBNC,GAAAA,WACJ,SAAAA,EAAYhwB,EAASyB,GACnB,GAAsB,oBAAXyjB,GACT,MAAM,IAAIhiB,UAAU,mEAItBjE,KAAKgxB,YAAiB,EACtBhxB,KAAKixB,SAAiB,EACtBjxB,KAAKkxB,YAAiB,GACtBlxB,KAAKmxB,eAAiB,GACtBnxB,KAAK4mB,QAAiB,KAGtB5mB,KAAKe,QAAUA,EACff,KAAKwC,OAAUxC,KAAKgK,WAAWxH,GAC/BxC,KAAKoxB,IAAU,KAEfpxB,KAAKqxB,2CAmCPC,OAAA,WACEtxB,KAAKgxB,YAAa,KAGpBO,QAAA,WACEvxB,KAAKgxB,YAAa,KAGpBQ,cAAA,WACExxB,KAAKgxB,YAAchxB,KAAKgxB,cAG1B/pB,OAAA,SAAO3C,GACL,GAAKtE,KAAKgxB,WAIV,GAAI1sB,EAAO,CACT,IAAMmtB,EAAUzxB,KAAK4nB,YAAY8J,SAC7BzJ,EAAU/nB,EAAEoE,EAAM2M,eAAexK,KAAKgrB,GAErCxJ,IACHA,EAAU,IAAIjoB,KAAK4nB,YACjBtjB,EAAM2M,cACNjR,KAAK2xB,sBAEPzxB,EAAEoE,EAAM2M,eAAexK,KAAKgrB,EAASxJ,IAGvCA,EAAQkJ,eAAeS,OAAS3J,EAAQkJ,eAAeS,MAEnD3J,EAAQ4J,uBACV5J,EAAQ6J,OAAO,KAAM7J,GAErBA,EAAQ8J,OAAO,KAAM9J,OAElB,CACL,GAAI/nB,EAAEF,KAAKgyB,iBAAiB9rB,SA1GV,QA4GhB,YADAlG,KAAK+xB,OAAO,KAAM/xB,MAIpBA,KAAK8xB,OAAO,KAAM9xB,UAItB2F,QAAA,WACE4G,aAAavM,KAAKixB,UAElB/wB,EAAE0F,WAAW5F,KAAKe,QAASf,KAAK4nB,YAAY8J,UAE5CxxB,EAAEF,KAAKe,SAASyK,IAAIxL,KAAK4nB,YAAYlf,WACrCxI,EAAEF,KAAKe,SAAS+E,QAAQ,UAAU0F,IAAI,gBAAiBxL,KAAKiyB,mBAExDjyB,KAAKoxB,KACPlxB,EAAEF,KAAKoxB,KAAK/qB,SAGdrG,KAAKgxB,WAAiB,KACtBhxB,KAAKixB,SAAiB,KACtBjxB,KAAKkxB,YAAiB,KACtBlxB,KAAKmxB,eAAiB,KAClBnxB,KAAK4mB,SACP5mB,KAAK4mB,QAAQ1I,UAGfle,KAAK4mB,QAAU,KACf5mB,KAAKe,QAAU,KACff,KAAKwC,OAAU,KACfxC,KAAKoxB,IAAU,QAGjBthB,KAAA,WAAO,IAAA/P,EAAAC,KACL,GAAuC,SAAnCE,EAAEF,KAAKe,SAASS,IAAI,WACtB,MAAM,IAAI+B,MAAM,uCAGlB,IAAM8jB,EAAYnnB,EAAE8F,MAAMhG,KAAK4nB,YAAY5hB,MAAMuqB,MACjD,GAAIvwB,KAAKkyB,iBAAmBlyB,KAAKgxB,WAAY,CAC3C9wB,EAAEF,KAAKe,SAASiB,QAAQqlB,GAExB,IAAM8K,EAAa/xB,EAAKqD,eAAezD,KAAKe,SACtCqxB,EAAalyB,EAAEsH,SACJ,OAAf2qB,EAAsBA,EAAanyB,KAAKe,QAAQkR,cAAcvO,gBAC9D1D,KAAKe,SAGP,GAAIsmB,EAAU5hB,uBAAyB2sB,EACrC,OAGF,IAAMhB,EAAQpxB,KAAKgyB,gBACbK,EAAQjyB,EAAKI,OAAOR,KAAK4nB,YAAY3iB,MAE3CmsB,EAAIxpB,aAAa,KAAMyqB,GACvBryB,KAAKe,QAAQ6G,aAAa,mBAAoByqB,GAE9CryB,KAAKsyB,aAEDtyB,KAAKwC,OAAOgtB,WACdtvB,EAAEkxB,GAAKxjB,SA1KS,QA6KlB,IAAM+L,EAA8C,mBAA1B3Z,KAAKwC,OAAOmX,UAClC3Z,KAAKwC,OAAOmX,UAAU7W,KAAK9C,KAAMoxB,EAAKpxB,KAAKe,SAC3Cf,KAAKwC,OAAOmX,UAEV4Y,EAAavyB,KAAKwyB,eAAe7Y,GACvC3Z,KAAKyyB,mBAAmBF,GAExB,IAAM3C,EAAY5vB,KAAK0yB,gBACvBxyB,EAAEkxB,GAAK3qB,KAAKzG,KAAK4nB,YAAY8J,SAAU1xB,MAElCE,EAAEsH,SAASxH,KAAKe,QAAQkR,cAAcvO,gBAAiB1D,KAAKoxB,MAC/DlxB,EAAEkxB,GAAKjG,SAASyE,GAGlB1vB,EAAEF,KAAKe,SAASiB,QAAQhC,KAAK4nB,YAAY5hB,MAAMyqB,UAE/CzwB,KAAK4mB,QAAU,IAAIX,GAAOjmB,KAAKe,QAASqwB,EAAKpxB,KAAKwnB,iBAAiB+K,IAEnEryB,EAAEkxB,GAAKxjB,SA9LW,QAoMd,iBAAkBhN,SAAS8C,iBAC7BxD,EAAEU,SAAS4R,MAAM7E,WAAW9G,GAAG,YAAa,KAAM3G,EAAEunB,MAGtD,IAAMkL,EAAW,WACX5yB,EAAKyC,OAAOgtB,WACdzvB,EAAK6yB,iBAEP,IAAMC,EAAiB9yB,EAAKmxB,YAC5BnxB,EAAKmxB,YAAkB,KAEvBhxB,EAAEH,EAAKgB,SAASiB,QAAQjC,EAAK6nB,YAAY5hB,MAAMwqB,OA/N9B,QAiObqC,GACF9yB,EAAKgyB,OAAO,KAAMhyB,IAItB,GAAIG,EAAEF,KAAKoxB,KAAKlrB,SAvNE,QAuNyB,CACzC,IAAM3E,EAAqBnB,EAAKkB,iCAAiCtB,KAAKoxB,KAEtElxB,EAAEF,KAAKoxB,KACJjxB,IAAIC,EAAKC,eAAgBsyB,GACzBtuB,qBAAqB9C,QAExBoxB,QAKN9iB,KAAA,SAAKkP,GAAU,IAAAlT,EAAA7L,KACPoxB,EAAYpxB,KAAKgyB,gBACjBtK,EAAYxnB,EAAE8F,MAAMhG,KAAK4nB,YAAY5hB,MAAMqqB,MAC3CsC,EAAW,WAtPI,SAuPf9mB,EAAKqlB,aAAoCE,EAAIrtB,YAC/CqtB,EAAIrtB,WAAWwa,YAAY6S,GAG7BvlB,EAAKinB,iBACLjnB,EAAK9K,QAAQod,gBAAgB,oBAC7Bje,EAAE2L,EAAK9K,SAASiB,QAAQ6J,EAAK+b,YAAY5hB,MAAMsqB,QAC1B,OAAjBzkB,EAAK+a,SACP/a,EAAK+a,QAAQ1I,UAGXa,GACFA,KAMJ,GAFA7e,EAAEF,KAAKe,SAASiB,QAAQ0lB,IAEpBA,EAAUjiB,qBAAd,CAgBA,GAZAvF,EAAEkxB,GAAKnrB,YA5Pa,QAgQhB,iBAAkBrF,SAAS8C,iBAC7BxD,EAAEU,SAAS4R,MAAM7E,WAAWnC,IAAI,YAAa,KAAMtL,EAAEunB,MAGvDznB,KAAKmxB,eAAL,OAAqC,EACrCnxB,KAAKmxB,eAAL,OAAqC,EACrCnxB,KAAKmxB,eAAL,OAAqC,EAEjCjxB,EAAEF,KAAKoxB,KAAKlrB,SAzQI,QAyQuB,CACzC,IAAM3E,EAAqBnB,EAAKkB,iCAAiC8vB,GAEjElxB,EAAEkxB,GACCjxB,IAAIC,EAAKC,eAAgBsyB,GACzBtuB,qBAAqB9C,QAExBoxB,IAGF3yB,KAAKkxB,YAAc,OAGrBtU,OAAA,WACuB,OAAjB5c,KAAK4mB,SACP5mB,KAAK4mB,QAAQxH,oBAMjB8S,cAAA,WACE,OAAOhwB,QAAQlC,KAAK+yB,eAGtBN,mBAAA,SAAmBF,GACjBryB,EAAEF,KAAKgyB,iBAAiBpkB,SAAYolB,cAAgBT,MAGtDP,cAAA,WAEE,OADAhyB,KAAKoxB,IAAMpxB,KAAKoxB,KAAOlxB,EAAEF,KAAKwC,OAAOitB,UAAU,GACxCzvB,KAAKoxB,OAGdkB,WAAA,WACE,IAAMlB,EAAMpxB,KAAKgyB,gBACjBhyB,KAAKizB,kBAAkB/yB,EAAEkxB,EAAI/oB,iBA1SF,mBA0S6CrI,KAAK+yB,YAC7E7yB,EAAEkxB,GAAKnrB,YAAeitB,gBAGxBD,kBAAA,SAAkBzsB,EAAU2sB,GACH,iBAAZA,IAAyBA,EAAQ9wB,WAAY8wB,EAAQ/uB,OAa5DpE,KAAKwC,OAAOqS,MACV7U,KAAKwC,OAAOstB,WACdqD,EAAUhF,GAAagF,EAASnzB,KAAKwC,OAAO6rB,UAAWruB,KAAKwC,OAAO8rB,aAGrE9nB,EAASqO,KAAKse,IAEd3sB,EAAS4sB,KAAKD,GAlBVnzB,KAAKwC,OAAOqS,KACT3U,EAAEizB,GAASttB,SAASjB,GAAG4B,IAC1BA,EAAS6sB,QAAQC,OAAOH,GAG1B3sB,EAAS4sB,KAAKlzB,EAAEizB,GAASC,WAiB/BL,SAAA,WACE,IAAIrD,EAAQ1vB,KAAKe,QAAQE,aAAa,uBAQtC,OANKyuB,IACHA,EAAqC,mBAAtB1vB,KAAKwC,OAAOktB,MACvB1vB,KAAKwC,OAAOktB,MAAM5sB,KAAK9C,KAAKe,SAC5Bf,KAAKwC,OAAOktB,OAGXA,KAKTlI,iBAAA,SAAiB+K,GAAY,IAAAvmB,EAAAhM,KAuB3B,OAAAyL,EAAA,GAtBwB,CACtBkO,UAAW4Y,EACXpW,UAAW,CACTxD,OAAQ3Y,KAAK+nB,aACb5K,KAAM,CACJuG,SAAU1jB,KAAKwC,OAAOqtB,mBAExBhN,MAAO,CACL9hB,QA7VqB,UA+VvBkhB,gBAAiB,CACf9I,kBAAmBnZ,KAAKwC,OAAOgkB,WAGnChJ,SAAU,SAAC/W,GACLA,EAAK2W,oBAAsB3W,EAAKkT,WAClC3N,EAAKunB,6BAA6B9sB,IAGtC8W,SAAU,SAAC9W,GAAD,OAAUuF,EAAKunB,6BAA6B9sB,KAKnDzG,KAAKwC,OAAOkkB,iBAInBqB,WAAA,WAAa,IAAAha,EAAA/N,KACL2Y,EAAS,GAef,MAbkC,mBAAvB3Y,KAAKwC,OAAOmW,OACrBA,EAAOxU,GAAK,SAACsC,GAMX,OALAA,EAAK2Q,QAAL3L,EAAA,GACKhF,EAAK2Q,QACLrJ,EAAKvL,OAAOmW,OAAOlS,EAAK2Q,QAASrJ,EAAKhN,UAAY,IAGhD0F,GAGTkS,EAAOA,OAAS3Y,KAAKwC,OAAOmW,OAGvBA,KAGT+Z,cAAA,WACE,OAA8B,IAA1B1yB,KAAKwC,OAAOotB,UACPhvB,SAAS4R,KAGdpS,EAAK+B,UAAUnC,KAAKwC,OAAOotB,WACtB1vB,EAAEF,KAAKwC,OAAOotB,WAGhB1vB,EAAEU,UAAUkb,KAAK9b,KAAKwC,OAAOotB,cAGtC4C,eAAA,SAAe7Y,GACb,OAAOoW,GAAcpW,EAAUnW,kBAGjC6tB,cAAA,WAAgB,IAAA9G,EAAAvqB,KACGA,KAAKwC,OAAOR,QAAQH,MAAM,KAElC2a,SAAQ,SAACxa,GAChB,GAAgB,UAAZA,EACF9B,EAAEqqB,EAAKxpB,SAAS8F,GACd0jB,EAAK3C,YAAY5hB,MAAM0qB,MACvBnG,EAAK/nB,OAAOxB,UACZ,SAACsD,GAAD,OAAWimB,EAAKtjB,OAAO3C,WAEpB,GAzZU,WAyZNtC,EAA4B,CACrC,IAAMwxB,EA7ZS,UA6ZCxxB,EACZuoB,EAAK3C,YAAY5hB,MAAM6qB,WACvBtG,EAAK3C,YAAY5hB,MAAM2qB,QACrB8C,EAhaS,UAgaEzxB,EACbuoB,EAAK3C,YAAY5hB,MAAM8qB,WACvBvG,EAAK3C,YAAY5hB,MAAM4qB,SAE3B1wB,EAAEqqB,EAAKxpB,SACJ8F,GAAG2sB,EAASjJ,EAAK/nB,OAAOxB,UAAU,SAACsD,GAAD,OAAWimB,EAAKuH,OAAOxtB,MACzDuC,GAAG4sB,EAAUlJ,EAAK/nB,OAAOxB,UAAU,SAACsD,GAAD,OAAWimB,EAAKwH,OAAOztB,UAIjEtE,KAAKiyB,kBAAoB,WACnB1H,EAAKxpB,SACPwpB,EAAK1a,QAIT3P,EAAEF,KAAKe,SAAS+E,QAAQ,UAAUe,GAAG,gBAAiB7G,KAAKiyB,mBAEvDjyB,KAAKwC,OAAOxB,SACdhB,KAAKwC,OAALiJ,EAAA,GACKzL,KAAKwC,OADV,CAEER,QAAS,SACThB,SAAU,KAGZhB,KAAK0zB,eAITA,UAAA,WACE,IAAMC,SAAmB3zB,KAAKe,QAAQE,aAAa,wBAE/CjB,KAAKe,QAAQE,aAAa,UAA0B,WAAd0yB,KACxC3zB,KAAKe,QAAQ6G,aACX,sBACA5H,KAAKe,QAAQE,aAAa,UAAY,IAGxCjB,KAAKe,QAAQ6G,aAAa,QAAS,QAIvCkqB,OAAA,SAAOxtB,EAAO2jB,GACZ,IAAMwJ,EAAUzxB,KAAK4nB,YAAY8J,UACjCzJ,EAAUA,GAAW/nB,EAAEoE,EAAM2M,eAAexK,KAAKgrB,MAG/CxJ,EAAU,IAAIjoB,KAAK4nB,YACjBtjB,EAAM2M,cACNjR,KAAK2xB,sBAEPzxB,EAAEoE,EAAM2M,eAAexK,KAAKgrB,EAASxJ,IAGnC3jB,IACF2jB,EAAQkJ,eACS,YAAf7sB,EAAM+C,KAvdS,QADA,UAydb,GAGFnH,EAAE+nB,EAAQ+J,iBAAiB9rB,SAjeX,SAjBC,SAkfuC+hB,EAAQiJ,YAClEjJ,EAAQiJ,YAnfW,QAufrB3kB,aAAa0b,EAAQgJ,UAErBhJ,EAAQiJ,YAzfa,OA2fhBjJ,EAAQzlB,OAAOmtB,OAAU1H,EAAQzlB,OAAOmtB,MAAM7f,KAKnDmY,EAAQgJ,SAAW3wB,YAAW,WAhgBT,SAigBf2nB,EAAQiJ,aACVjJ,EAAQnY,SAETmY,EAAQzlB,OAAOmtB,MAAM7f,MARtBmY,EAAQnY,WAWZiiB,OAAA,SAAOztB,EAAO2jB,GACZ,IAAMwJ,EAAUzxB,KAAK4nB,YAAY8J,UACjCzJ,EAAUA,GAAW/nB,EAAEoE,EAAM2M,eAAexK,KAAKgrB,MAG/CxJ,EAAU,IAAIjoB,KAAK4nB,YACjBtjB,EAAM2M,cACNjR,KAAK2xB,sBAEPzxB,EAAEoE,EAAM2M,eAAexK,KAAKgrB,EAASxJ,IAGnC3jB,IACF2jB,EAAQkJ,eACS,aAAf7sB,EAAM+C,KA9fS,QADA,UAggBb,GAGF4gB,EAAQ4J,yBAIZtlB,aAAa0b,EAAQgJ,UAErBhJ,EAAQiJ,YA9hBa,MAgiBhBjJ,EAAQzlB,OAAOmtB,OAAU1H,EAAQzlB,OAAOmtB,MAAM9f,KAKnDoY,EAAQgJ,SAAW3wB,YAAW,WAriBT,QAsiBf2nB,EAAQiJ,aACVjJ,EAAQpY,SAEToY,EAAQzlB,OAAOmtB,MAAM9f,MARtBoY,EAAQpY,WAWZgiB,qBAAA,WACE,IAAK,IAAM7vB,KAAWhC,KAAKmxB,eACzB,GAAInxB,KAAKmxB,eAAenvB,GACtB,OAAO,EAIX,OAAO,KAGTgI,WAAA,SAAWxH,GACT,IAAMoxB,EAAiB1zB,EAAEF,KAAKe,SAAS0F,OAwCvC,OAtCA9D,OAAOoX,KAAK6Z,GACTpX,SAAQ,SAACqX,IACyC,IAA7CtE,GAAsB5iB,QAAQknB,WACzBD,EAAeC,MAUA,iBAN5BrxB,EAAMiJ,EAAA,GACDzL,KAAK4nB,YAAYjf,QACjBirB,EACkB,iBAAXpxB,GAAuBA,EAASA,EAAS,KAGnCmtB,QAChBntB,EAAOmtB,MAAQ,CACb7f,KAAMtN,EAAOmtB,MACb9f,KAAMrN,EAAOmtB,QAIW,iBAAjBntB,EAAOktB,QAChBltB,EAAOktB,MAAQltB,EAAOktB,MAAMxsB,YAGA,iBAAnBV,EAAO2wB,UAChB3wB,EAAO2wB,QAAU3wB,EAAO2wB,QAAQjwB,YAGlC9C,EAAKkC,gBACH2C,GACAzC,EACAxC,KAAK4nB,YAAY1e,aAGf1G,EAAOstB,WACTttB,EAAOitB,SAAWtB,GAAa3rB,EAAOitB,SAAUjtB,EAAO6rB,UAAW7rB,EAAO8rB,aAGpE9rB,KAGTmvB,mBAAA,WACE,IAAMnvB,EAAS,GAEf,GAAIxC,KAAKwC,OACP,IAAK,IAAMsU,KAAO9W,KAAKwC,OACjBxC,KAAK4nB,YAAYjf,QAAQmO,KAAS9W,KAAKwC,OAAOsU,KAChDtU,EAAOsU,GAAO9W,KAAKwC,OAAOsU,IAKhC,OAAOtU,KAGTswB,eAAA,WACE,IAAMgB,EAAO5zB,EAAEF,KAAKgyB,iBACd+B,EAAWD,EAAKxjB,KAAK,SAASnN,MAAMmsB,IACzB,OAAbyE,GAAqBA,EAASvrB,QAChCsrB,EAAK7tB,YAAY8tB,EAASC,KAAK,QAInCT,6BAAA,SAA6BU,GAC3Bj0B,KAAKoxB,IAAM6C,EAAW5d,SAAS4C,OAC/BjZ,KAAK8yB,iBACL9yB,KAAKyyB,mBAAmBzyB,KAAKwyB,eAAeyB,EAAWta,eAGzDiZ,eAAA,WACE,IAAMxB,EAAMpxB,KAAKgyB,gBACXkC,EAAsBl0B,KAAKwC,OAAOgtB,UAEA,OAApC4B,EAAInwB,aAAa,iBAIrBf,EAAEkxB,GAAKnrB,YAvnBa,QAwnBpBjG,KAAKwC,OAAOgtB,WAAY,EACxBxvB,KAAK6P,OACL7P,KAAK8P,OACL9P,KAAKwC,OAAOgtB,UAAY0E,MAKnB5tB,iBAAP,SAAwB9D,GACtB,OAAOxC,KAAKuG,MAAK,WACf,IAAIE,EAAOvG,EAAEF,MAAMyG,KAzsBK,cA0sBlBsD,EAA4B,iBAAXvH,GAAuBA,EAE9C,IAAKiE,IAAQ,eAAenD,KAAKd,MAI5BiE,IACHA,EAAO,IAAIsqB,EAAQ/wB,KAAM+J,GACzB7J,EAAEF,MAAMyG,KAltBc,aAktBCA,IAGH,iBAAXjE,GAAqB,CAC9B,GAA4B,oBAAjBiE,EAAKjE,GACd,MAAM,IAAIyB,UAAJ,oBAAkCzB,EAAlC,KAERiE,EAAKjE,kDAzmBT,MAjH0B,wCAqH1B,OAAOmG,gCAIP,OAAO1D,oCAIP,MA5H0B,2CAgI1B,OAAOe,qCAIP,MAnIW,kDAuIX,OAAOkD,SAhDL6nB,GA6oBN7wB,EAAEiE,GAAGc,IAAQ8rB,GAAQzqB,iBACrBpG,EAAEiE,GAAGc,IAAM6B,YAAciqB,GACzB7wB,EAAEiE,GAAGc,IAAM8B,WAAa,WAEtB,OADA7G,EAAEiE,GAAGc,IAAQC,GACN6rB,GAAQzqB,kBChvBjB,IAAMrB,GAAsB,UAItBC,GAAsBhF,EAAEiE,GAAGc,IAE3BqqB,GAAsB,IAAIjsB,OAAJ,wBAAyC,KAE/DsF,GAAO8C,EAAA,GACRslB,GAAQpoB,QADA,CAEXgR,UAAY,QACZ3X,QAAY,QACZmxB,QAAY,GACZ1D,SAAY,wIAMRvmB,GAAWuC,EAAA,GACZslB,GAAQ7nB,YADI,CAEfiqB,QAAU,8BASNntB,GAAQ,CACZqqB,KAAI,kBACJC,OAAM,oBACNC,KAAI,kBACJC,MAAK,mBACLC,SAAQ,sBACRC,MAAK,mBACLC,QAAO,qBACPC,SAAQ,sBACRC,WAAU,wBACVC,WAAU,yBASNqD,GAAAA,SAAAA,+KAiCJjC,cAAA,WACE,OAAOlyB,KAAK+yB,YAAc/yB,KAAKo0B,iBAGjC3B,mBAAA,SAAmBF,GACjBryB,EAAEF,KAAKgyB,iBAAiBpkB,SAAYolB,cAAgBT,MAGtDP,cAAA,WAEE,OADAhyB,KAAKoxB,IAAMpxB,KAAKoxB,KAAOlxB,EAAEF,KAAKwC,OAAOitB,UAAU,GACxCzvB,KAAKoxB,OAGdkB,WAAA,WACE,IAAMwB,EAAO5zB,EAAEF,KAAKgyB,iBAGpBhyB,KAAKizB,kBAAkBa,EAAKhY,KAxEP,mBAwE6B9b,KAAK+yB,YACvD,IAAII,EAAUnzB,KAAKo0B,cACI,mBAAZjB,IACTA,EAAUA,EAAQrwB,KAAK9C,KAAKe,UAE9Bf,KAAKizB,kBAAkBa,EAAKhY,KA5EP,iBA4E+BqX,GAEpDW,EAAK7tB,YAAeitB,gBAKtBkB,YAAA,WACE,OAAOp0B,KAAKe,QAAQE,aAAa,iBAC/BjB,KAAKwC,OAAO2wB,WAGhBL,eAAA,WACE,IAAMgB,EAAO5zB,EAAEF,KAAKgyB,iBACd+B,EAAWD,EAAKxjB,KAAK,SAASnN,MAAMmsB,IACzB,OAAbyE,GAAqBA,EAASvrB,OAAS,GACzCsrB,EAAK7tB,YAAY8tB,EAASC,KAAK,QAM5B1tB,iBAAP,SAAwB9D,GACtB,OAAOxC,KAAKuG,MAAK,WACf,IAAIE,EAAOvG,EAAEF,MAAMyG,KA9HG,cA+HhBsD,EAA4B,iBAAXvH,EAAsBA,EAAS,KAEtD,IAAKiE,IAAQ,eAAenD,KAAKd,MAI5BiE,IACHA,EAAO,IAAI0tB,EAAQn0B,KAAM+J,GACzB7J,EAAEF,MAAMyG,KAvIY,aAuIGA,IAGH,iBAAXjE,GAAqB,CAC9B,GAA4B,oBAAjBiE,EAAKjE,GACd,MAAM,IAAIyB,UAAJ,oBAAkCzB,EAAlC,KAERiE,EAAKjE,kDA3FT,MApDwB,wCAwDxB,OAAOmG,gCAIP,OAAO1D,oCAIP,MA/DwB,2CAmExB,OAAOe,qCAIP,MAtEW,kDA0EX,OAAOkD,SA5BLirB,CAAgBpD,IA2GtB7wB,EAAEiE,GAAGc,IAAQkvB,GAAQ7tB,iBACrBpG,EAAEiE,GAAGc,IAAM6B,YAAcqtB,GACzBj0B,EAAEiE,GAAGc,IAAM8B,WAAa,WAEtB,OADA7G,EAAEiE,GAAGc,IAAQC,GACNivB,GAAQ7tB,kBChKjB,IAAMrB,GAAqB,YAKrBC,GAAqBhF,EAAEiE,GAAGc,IAE1B0D,GAAU,CACdgQ,OAAS,GACT0b,OAAS,OACT1vB,OAAS,IAGLuE,GAAc,CAClByP,OAAS,SACT0b,OAAS,SACT1vB,OAAS,oBA4BL2vB,GAAAA,WACJ,SAAAA,EAAYvzB,EAASyB,GAAQ,IAAAzC,EAAAC,KAC3BA,KAAKoF,SAAiBrE,EACtBf,KAAKu0B,eAAqC,SAApBxzB,EAAQkH,QAAqBC,OAASnH,EAC5Df,KAAK+J,QAAiB/J,KAAKgK,WAAWxH,GACtCxC,KAAKwP,UAAoBxP,KAAK+J,QAAQpF,OAAb3E,cACAA,KAAK+J,QAAQpF,OADhB,qBAEG3E,KAAK+J,QAAQpF,OAFhB,kBAGtB3E,KAAKw0B,SAAiB,GACtBx0B,KAAKy0B,SAAiB,GACtBz0B,KAAK00B,cAAiB,KACtB10B,KAAK20B,cAAiB,EAEtBz0B,EAAEF,KAAKu0B,gBAAgB1tB,GArCT,uBAqC0B,SAACvC,GAAD,OAAWvE,EAAK60B,SAAStwB,MAEjEtE,KAAK60B,UACL70B,KAAK40B,sCAePC,QAAA,WAAU,IAAAhpB,EAAA7L,KACF80B,EAAa90B,KAAKu0B,iBAAmBv0B,KAAKu0B,eAAersB,OAzC3C,SACA,WA2Cd6sB,EAAuC,SAAxB/0B,KAAK+J,QAAQsqB,OAC9BS,EAAa90B,KAAK+J,QAAQsqB,OAExBW,EA9Cc,aA8CDD,EACf/0B,KAAKi1B,gBAAkB,EAE3Bj1B,KAAKw0B,SAAW,GAChBx0B,KAAKy0B,SAAW,GAEhBz0B,KAAK20B,cAAgB30B,KAAKk1B,mBAEV,GAAG9sB,MAAMtF,KAAKlC,SAASyH,iBAAiBrI,KAAKwP,YAG1DwK,KAAI,SAACjZ,GACJ,IAAI4D,EACEwwB,EAAiB/0B,EAAKU,uBAAuBC,GAMnD,GAJIo0B,IACFxwB,EAAS/D,SAASQ,cAAc+zB,IAG9BxwB,EAAQ,CACV,IAAMywB,EAAYzwB,EAAO+L,wBACzB,GAAI0kB,EAAUjf,OAASif,EAAUlf,OAE/B,MAAO,CACLhW,EAAEyE,GAAQowB,KAAgB1f,IAAM2f,EAChCG,GAIN,OAAO,QAER7lB,QAAO,SAACgZ,GAAD,OAAUA,KACjBpO,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE,GAAKC,EAAE,MACxBoC,SAAQ,SAAC8L,GACRzc,EAAK2oB,SAAS/kB,KAAK6Y,EAAK,IACxBzc,EAAK4oB,SAAShlB,KAAK6Y,EAAK,UAI9B3iB,QAAA,WACEzF,EAAE0F,WAAW5F,KAAKoF,SAxHK,gBAyHvBlF,EAAEF,KAAKu0B,gBAAgB/oB,IAxHZ,iBA0HXxL,KAAKoF,SAAiB,KACtBpF,KAAKu0B,eAAiB,KACtBv0B,KAAK+J,QAAiB,KACtB/J,KAAKwP,UAAiB,KACtBxP,KAAKw0B,SAAiB,KACtBx0B,KAAKy0B,SAAiB,KACtBz0B,KAAK00B,cAAiB,KACtB10B,KAAK20B,cAAiB,QAKxB3qB,WAAA,SAAWxH,GAMT,GAA6B,iBAL7BA,EAAMiJ,EAAA,GACD9C,GACkB,iBAAXnG,GAAuBA,EAASA,EAAS,KAGnCmC,QAAuBvE,EAAK+B,UAAUK,EAAOmC,QAAS,CACtE,IAAIuK,EAAKhP,EAAEsC,EAAOmC,QAAQ2L,KAAK,MAC1BpB,IACHA,EAAK9O,EAAKI,OAAOyE,IACjB/E,EAAEsC,EAAOmC,QAAQ2L,KAAK,KAAMpB,IAE9B1M,EAAOmC,OAAP,IAAoBuK,EAKtB,OAFA9O,EAAKkC,gBAAgB2C,GAAMzC,EAAQ0G,IAE5B1G,KAGTyyB,cAAA,WACE,OAAOj1B,KAAKu0B,iBAAmBrsB,OAC3BlI,KAAKu0B,eAAec,YAAcr1B,KAAKu0B,eAAerf,aAG5DggB,iBAAA,WACE,OAAOl1B,KAAKu0B,eAAexK,cAAgBrpB,KAAKsV,IAC9CpV,SAAS4R,KAAKuX,aACdnpB,SAAS8C,gBAAgBqmB,iBAI7BuL,iBAAA,WACE,OAAOt1B,KAAKu0B,iBAAmBrsB,OAC3BA,OAAOwQ,YAAc1Y,KAAKu0B,eAAe7jB,wBAAwBwF,UAGvE0e,SAAA,WACE,IAAM1f,EAAelV,KAAKi1B,gBAAkBj1B,KAAK+J,QAAQ4O,OACnDoR,EAAe/pB,KAAKk1B,mBACpBK,EAAev1B,KAAK+J,QAAQ4O,OAASoR,EAAe/pB,KAAKs1B,mBAM/D,GAJIt1B,KAAK20B,gBAAkB5K,GACzB/pB,KAAK60B,UAGH3f,GAAaqgB,EAAjB,CACE,IAAM5wB,EAAS3E,KAAKy0B,SAASz0B,KAAKy0B,SAASjsB,OAAS,GAEhDxI,KAAK00B,gBAAkB/vB,GACzB3E,KAAKw1B,UAAU7wB,OAJnB,CASA,GAAI3E,KAAK00B,eAAiBxf,EAAYlV,KAAKw0B,SAAS,IAAMx0B,KAAKw0B,SAAS,GAAK,EAG3E,OAFAx0B,KAAK00B,cAAgB,UACrB10B,KAAKy1B,SAIP,IAAK,IAAIntB,EAAItI,KAAKw0B,SAAShsB,OAAQF,KAAM,CAChBtI,KAAK00B,gBAAkB10B,KAAKy0B,SAASnsB,IACxD4M,GAAalV,KAAKw0B,SAASlsB,KACM,oBAAzBtI,KAAKw0B,SAASlsB,EAAI,IACtB4M,EAAYlV,KAAKw0B,SAASlsB,EAAI,KAGpCtI,KAAKw1B,UAAUx1B,KAAKy0B,SAASnsB,SAKnCktB,UAAA,SAAU7wB,GACR3E,KAAK00B,cAAgB/vB,EAErB3E,KAAKy1B,SAEL,IAAMC,EAAU11B,KAAKwP,UAClB3N,MAAM,KACNmY,KAAI,SAAChZ,GAAD,OAAiBA,EAAjB,iBAA0C2D,EAA1C,MAAsD3D,EAAtD,UAAwE2D,EAAxE,QAEDgxB,EAAQz1B,EAAE,GAAGkI,MAAMtF,KAAKlC,SAASyH,iBAAiBqtB,EAAQ1B,KAAK,QAEjE2B,EAAMzvB,SAtMmB,kBAuM3ByvB,EAAM7vB,QA/LqB,aAgMxBgW,KA9LwB,oBA+LxBlO,SAxMwB,UAyM3B+nB,EAAM/nB,SAzMqB,YA4M3B+nB,EAAM/nB,SA5MqB,UA+M3B+nB,EAAMC,QA5MqB,qBA6MxB/qB,KAAQgrB,+BACRjoB,SAjNwB,UAmN3B+nB,EAAMC,QAhNqB,qBAiNxB/qB,KA/MwB,aAgNxB8C,SAjNwB,aAkNxBC,SAtNwB,WAyN7B1N,EAAEF,KAAKu0B,gBAAgBvyB,QA9NP,wBA8N+B,CAC7CkL,cAAevI,OAInB8wB,OAAA,WACE,GAAGrtB,MAAMtF,KAAKlC,SAASyH,iBAAiBrI,KAAKwP,YAC1CF,QAAO,SAACoE,GAAD,OAAUA,EAAKnM,UAAUC,SAhON,aAiO1BgV,SAAQ,SAAC9I,GAAD,OAAUA,EAAKnM,UAAUlB,OAjOP,gBAsOxBC,iBAAP,SAAwB9D,GACtB,OAAOxC,KAAKuG,MAAK,WACf,IAAIE,EAAOvG,EAAEF,MAAMyG,KA9PE,gBAsQrB,GALKA,IACHA,EAAO,IAAI6tB,EAAUt0B,KAHW,iBAAXwC,GAAuBA,GAI5CtC,EAAEF,MAAMyG,KAnQW,eAmQIA,IAGH,iBAAXjE,EAAqB,CAC9B,GAA4B,oBAAjBiE,EAAKjE,GACd,MAAM,IAAIyB,UAAJ,oBAAkCzB,EAAlC,KAERiE,EAAKjE,kDA1MT,MAjEuB,wCAqEvB,OAAOmG,SA1BL2rB,GA4ONp0B,EAAEgI,QAAQrB,GAnQe,8BAmQS,WAIhC,IAHA,IAAMivB,EAAa,GAAG1tB,MAAMtF,KAAKlC,SAASyH,iBA/PX,wBAkQtBC,EAFgBwtB,EAAWttB,OAELF,KAAM,CACnC,IAAMytB,EAAO71B,EAAE41B,EAAWxtB,IAC1BgsB,GAAUhuB,iBAAiBxD,KAAKizB,EAAMA,EAAKtvB,YAU/CvG,EAAEiE,GAAGc,IAAQqvB,GAAUhuB,iBACvBpG,EAAEiE,GAAGc,IAAM6B,YAAcwtB,GACzBp0B,EAAEiE,GAAGc,IAAM8B,WAAa,WAEtB,OADA7G,EAAEiE,GAAGc,IAAQC,GACNovB,GAAUhuB,kBC5SnB,IAKMpB,GAAqBhF,EAAEiE,GAAF,IA4BrB6xB,GAAAA,WACJ,SAAAA,EAAYj1B,GACVf,KAAKoF,SAAWrE,6BAWlB+O,KAAA,WAAO,IAAA/P,EAAAC,KACL,KAAIA,KAAKoF,SAASrB,YACd/D,KAAKoF,SAASrB,WAAW1B,WAAa2R,KAAKkW,cAC3ChqB,EAAEF,KAAKoF,UAAUc,SAnCQ,WAoCzBhG,EAAEF,KAAKoF,UAAUc,SAnCQ,aAgC7B,CAOA,IAAIvB,EACAsxB,EACEC,EAAch2B,EAAEF,KAAKoF,UAAUU,QApCF,qBAoCmC,GAChE9E,EAAWZ,EAAKU,uBAAuBd,KAAKoF,UAElD,GAAI8wB,EAAa,CACf,IAAMC,EAAwC,OAAzBD,EAAY7jB,UAA8C,OAAzB6jB,EAAY7jB,SAtCjC,iBADA,UAyCjC4jB,GADAA,EAAW/1B,EAAEk2B,UAAUl2B,EAAEg2B,GAAapa,KAAKqa,KACvBF,EAASztB,OAAS,GAGxC,IAAMkf,EAAYxnB,EAAE8F,MA1DR,cA0D0B,CACpCkH,cAAelN,KAAKoF,WAGhBiiB,EAAYnnB,EAAE8F,MA5DR,cA4D0B,CACpCkH,cAAe+oB,IASjB,GANIA,GACF/1B,EAAE+1B,GAAUj0B,QAAQ0lB,GAGtBxnB,EAAEF,KAAKoF,UAAUpD,QAAQqlB,IAErBA,EAAU5hB,uBACViiB,EAAUjiB,qBADd,CAKIzE,IACF2D,EAAS/D,SAASQ,cAAcJ,IAGlChB,KAAKw1B,UACHx1B,KAAKoF,SACL8wB,GAGF,IAAMvD,EAAW,WACf,IAAM0D,EAAcn2B,EAAE8F,MAtFV,gBAsF8B,CACxCkH,cAAenN,EAAKqF,WAGhBilB,EAAanqB,EAAE8F,MAxFV,eAwF6B,CACtCkH,cAAe+oB,IAGjB/1B,EAAE+1B,GAAUj0B,QAAQq0B,GACpBn2B,EAAEH,EAAKqF,UAAUpD,QAAQqoB,IAGvB1lB,EACF3E,KAAKw1B,UAAU7wB,EAAQA,EAAOZ,WAAY4uB,GAE1CA,SAIJhtB,QAAA,WACEzF,EAAE0F,WAAW5F,KAAKoF,SAhHK,UAiHvBpF,KAAKoF,SAAW,QAKlBowB,UAAA,SAAUz0B,EAAS6uB,EAAW7Q,GAAU,IAAAlT,EAAA7L,KAKhCs2B,IAJiB1G,GAAqC,OAAvBA,EAAUvd,UAA4C,OAAvBud,EAAUvd,SAE1EnS,EAAE0vB,GAAWjiB,SAtGkB,WAqG/BzN,EAAE0vB,GAAW9T,KApGkB,mBAuGL,GACxBlL,EAAkBmO,GAAauX,GAAUp2B,EAAEo2B,GAAQpwB,SA9G5B,QA+GvBysB,EAAW,WAAA,OAAM9mB,EAAK0qB,oBAC1Bx1B,EACAu1B,EACAvX,IAGF,GAAIuX,GAAU1lB,EAAiB,CAC7B,IAAMrP,EAAqBnB,EAAKkB,iCAAiCg1B,GAEjEp2B,EAAEo2B,GACCrwB,YAxHwB,QAyHxB9F,IAAIC,EAAKC,eAAgBsyB,GACzBtuB,qBAAqB9C,QAExBoxB,OAIJ4D,oBAAA,SAAoBx1B,EAASu1B,EAAQvX,GACnC,GAAIuX,EAAQ,CACVp2B,EAAEo2B,GAAQrwB,YArIiB,UAuI3B,IAAMuwB,EAAgBt2B,EAAEo2B,EAAOvyB,YAAY+X,KA5HV,4BA8H/B,GAEE0a,GACFt2B,EAAEs2B,GAAevwB,YA5IQ,UA+IS,QAAhCqwB,EAAOr1B,aAAa,SACtBq1B,EAAO1uB,aAAa,iBAAiB,GAezC,GAXA1H,EAAEa,GAAS6M,SApJkB,UAqJQ,QAAjC7M,EAAQE,aAAa,SACvBF,EAAQ6G,aAAa,iBAAiB,GAGxCxH,EAAK0B,OAAOf,GAERA,EAAQwG,UAAUC,SAzJO,SA0J3BzG,EAAQwG,UAAUkB,IAzJS,QA4JzB1H,EAAQgD,YAAc7D,EAAEa,EAAQgD,YAAYmC,SAhKnB,iBAgKuD,CAClF,IAAMuwB,EAAkBv2B,EAAEa,GAAS+E,QA3JF,aA2J6B,GAE9D,GAAI2wB,EAAiB,CACnB,IAAMC,EAAqB,GAAGtuB,MAAMtF,KAAK2zB,EAAgBpuB,iBAzJ1B,qBA2J/BnI,EAAEw2B,GAAoB9oB,SArKG,UAwK3B7M,EAAQ6G,aAAa,iBAAiB,GAGpCmX,GACFA,OAMGzY,iBAAP,SAAwB9D,GACtB,OAAOxC,KAAKuG,MAAK,WACf,IAAMyK,EAAQ9Q,EAAEF,MACZyG,EAAOuK,EAAMvK,KAjMI,UAwMrB,GALKA,IACHA,EAAO,IAAIuvB,EAAIh2B,MACfgR,EAAMvK,KArMa,SAqMEA,IAGD,iBAAXjE,EAAqB,CAC9B,GAA4B,oBAAjBiE,EAAKjE,GACd,MAAM,IAAIyB,UAAJ,oBAAkCzB,EAAlC,KAERiE,EAAKjE,kDArKT,MAxCuB,cAgCrBwzB,GAyLN91B,EAAEU,UACCiG,GAhNuB,wBAYa,mEAoMW,SAAUvC,GACxDA,EAAMsC,iBACNovB,GAAI1vB,iBAAiBxD,KAAK5C,EAAEF,MAAO,WASvCE,EAAEiE,GAAF,IAAa6xB,GAAI1vB,iBACjBpG,EAAEiE,GAAF,IAAW2C,YAAckvB,GACzB91B,EAAEiE,GAAF,IAAW4C,WAAa,WAEtB,OADA7G,EAAEiE,GAAF,IAAae,GACN8wB,GAAI1vB,kBC1Ob,IAIMpB,GAAqBhF,EAAEiE,GAAF,MAarB+E,GAAc,CAClBsmB,UAAY,UACZmH,SAAY,UACZhH,MAAY,UAGRhnB,GAAU,CACd6mB,WAAY,EACZmH,UAAY,EACZhH,MAAY,KAWRiH,GAAAA,WACJ,SAAAA,EAAY71B,EAASyB,GACnBxC,KAAKoF,SAAWrE,EAChBf,KAAK+J,QAAW/J,KAAKgK,WAAWxH,GAChCxC,KAAKixB,SAAW,KAChBjxB,KAAKqxB,2CAmBPvhB,KAAA,WAAO,IAAA/P,EAAAC,KACCqnB,EAAYnnB,EAAE8F,MArDR,iBAwDZ,GADA9F,EAAEF,KAAKoF,UAAUpD,QAAQqlB,IACrBA,EAAU5hB,qBAAd,CAIAzF,KAAK62B,gBAED72B,KAAK+J,QAAQylB,WACfxvB,KAAKoF,SAASmC,UAAUkB,IA5DH,QA+DvB,IAAMkqB,EAAW,WACf5yB,EAAKqF,SAASmC,UAAUlB,OA7DH,WA8DrBtG,EAAKqF,SAASmC,UAAUkB,IA/DH,QAiErBvI,EAAEH,EAAKqF,UAAUpD,QArEN,kBAuEPjC,EAAKgK,QAAQ4sB,WACf52B,EAAKkxB,SAAW3wB,YAAW,WACzBP,EAAK8P,SACJ9P,EAAKgK,QAAQ4lB,SAOpB,GAHA3vB,KAAKoF,SAASmC,UAAUlB,OA3ED,QA4EvBjG,EAAK0B,OAAO9B,KAAKoF,UACjBpF,KAAKoF,SAASmC,UAAUkB,IA3ED,WA4EnBzI,KAAK+J,QAAQylB,UAAW,CAC1B,IAAMjuB,EAAqBnB,EAAKkB,iCAAiCtB,KAAKoF,UAEtElF,EAAEF,KAAKoF,UACJjF,IAAIC,EAAKC,eAAgBsyB,GACzBtuB,qBAAqB9C,QAExBoxB,QAIJ9iB,KAAA,WACE,GAAK7P,KAAKoF,SAASmC,UAAUC,SAzFN,QAyFvB,CAIA,IAAMkgB,EAAYxnB,EAAE8F,MApGR,iBAsGZ9F,EAAEF,KAAKoF,UAAUpD,QAAQ0lB,GACrBA,EAAUjiB,sBAIdzF,KAAK82B,aAGPnxB,QAAA,WACE3F,KAAK62B,gBAED72B,KAAKoF,SAASmC,UAAUC,SA1GL,SA2GrBxH,KAAKoF,SAASmC,UAAUlB,OA3GH,QA8GvBnG,EAAEF,KAAKoF,UAAUoG,IAtHI,0BAwHrBtL,EAAE0F,WAAW5F,KAAKoF,SA5HK,YA6HvBpF,KAAKoF,SAAW,KAChBpF,KAAK+J,QAAW,QAKlBC,WAAA,SAAWxH,GAaT,OAZAA,EAAMiJ,EAAA,GACD9C,GACAzI,EAAEF,KAAKoF,UAAUqB,OACC,iBAAXjE,GAAuBA,EAASA,EAAS,IAGrDpC,EAAKkC,gBA5IkB,QA8IrBE,EACAxC,KAAK4nB,YAAY1e,aAGZ1G,KAGT6uB,cAAA,WAAgB,IAAAxlB,EAAA7L,KACdE,EAAEF,KAAKoF,UAAUyB,GAhJI,yBAuBK,0BAyHsC,WAAA,OAAMgF,EAAKgE,aAG7EinB,OAAA,WAAS,IAAA9qB,EAAAhM,KACD2yB,EAAW,WACf3mB,EAAK5G,SAASmC,UAAUkB,IA9IH,QA+IrBvI,EAAE8L,EAAK5G,UAAUpD,QApJL,oBAwJd,GADAhC,KAAKoF,SAASmC,UAAUlB,OAjJD,QAkJnBrG,KAAK+J,QAAQylB,UAAW,CAC1B,IAAMjuB,EAAqBnB,EAAKkB,iCAAiCtB,KAAKoF,UAEtElF,EAAEF,KAAKoF,UACJjF,IAAIC,EAAKC,eAAgBsyB,GACzBtuB,qBAAqB9C,QAExBoxB,OAIJkE,cAAA,WACEtqB,aAAavM,KAAKixB,UAClBjxB,KAAKixB,SAAW,QAKX3qB,iBAAP,SAAwB9D,GACtB,OAAOxC,KAAKuG,MAAK,WACf,IAAMC,EAAWtG,EAAEF,MACfyG,EAAaD,EAASC,KAnLL,YA2LrB,GALKA,IACHA,EAAO,IAAImwB,EAAM52B,KAHgB,iBAAXwC,GAAuBA,GAI7CgE,EAASC,KAxLU,WAwLKA,IAGJ,iBAAXjE,EAAqB,CAC9B,GAA4B,oBAAjBiE,EAAKjE,GACd,MAAM,IAAIyB,UAAJ,oBAAkCzB,EAAlC,KAGRiE,EAAKjE,GAAQxC,mDAlJjB,MA/CuB,4CAmDvB,OAAOkJ,mCAIP,OAAOP,SAnBLiuB,GAyKN12B,EAAEiE,GAAF,MAAyByyB,GAAMtwB,iBAC/BpG,EAAEiE,GAAF,MAAW2C,YAAc8vB,GACzB12B,EAAEiE,GAAF,MAAW4C,WAAc,WAEvB,OADA7G,EAAEiE,GAAF,MAAae,GACN0xB,GAAMtwB","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(CLASS_NAME_SHOW)\n\n if (!$(element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(EVENT_CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n EVENT_CLICK_DATA_API,\n SELECTOR_DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]'\nconst SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n SELECTOR_DATA_TOGGLES\n )[0]\n\n if (rootElement) {\n const input = this._element.querySelector(SELECTOR_INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(SELECTOR_ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n }\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => {\n let button = event.target\n const initialButton = button\n\n if (!$(button).hasClass(CLASS_NAME_BUTTON)) {\n button = $(button).closest(SELECTOR_BUTTON)[0]\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault() // work around Firefox bug #1540995\n } else {\n const inputBtn = button.querySelector(SELECTOR_INPUT)\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault() // work around Firefox bug #1540995\n return\n }\n\n if (initialButton.tagName !== 'LABEL' || inputBtn && inputBtn.type !== 'checkbox') {\n Button._jQueryInterface.call($(button), 'toggle')\n }\n }\n })\n .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(SELECTOR_BUTTON)[0]\n $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n // ensure correct active class is set to match the controls' actual values/states\n\n // find all checkboxes/readio buttons inside data-toggle groups\n let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n const input = button.querySelector(SELECTOR_INPUT)\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // find all button toggles\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n if (button.getAttribute('aria-pressed') === 'true') {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true,\n touch : true\n}\n\nconst DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean',\n touch : 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH : 'touch',\n PEN : 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? DIRECTION_NEXT\n : DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element).on(EVENT_KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(EVENT_MOUSEENTER, (event) => this.pause(event))\n .on(EVENT_MOUSELEAVE, (event) => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = (event) => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n .on(EVENT_DRAG_START, (e) => e.preventDefault())\n\n if (this._pointerEvent) {\n $(this._element).on(EVENT_POINTERDOWN, (event) => start(event))\n $(this._element).on(EVENT_POINTERUP, (event) => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n $(this._element).on(EVENT_TOUCHSTART, (event) => start(event))\n $(this._element).on(EVENT_TOUCHMOVE, (event) => move(event))\n $(this._element).on(EVENT_TOUCHEND, (event) => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode\n ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM))\n : []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM))\n const slideEvent = $.Event(EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(CLASS_NAME_ACTIVE)\n\n $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n $(nextElement).addClass(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle : true,\n parent : ''\n}\n\nconst DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst DIMENSION_WIDTH = 'width'\nconst DIMENSION_HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter((foundElem) => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))\n .filter((elem) => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(EVENT_SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSE)\n .addClass(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = $.Event(EVENT_HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(CLASS_NAME_COLLAPSING)\n .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n $(trigger).addClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(CLASS_NAME_COLLAPSE)\n .trigger(EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(DIMENSION_WIDTH)\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n const children = [].slice.call(parent.querySelectorAll(selector))\n\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic',\n popperConfig : null\n}\n\nconst DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string',\n popperConfig : '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show(true)\n }\n\n show(usePopper = false) {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(EVENT_SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(CLASS_NAME_POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(EVENT_CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU)\n }\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT)\n ? PLACEMENT_TOPEND\n : PLACEMENT_TOP\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n $(dropdownMenu).removeClass(CLASS_NAME_SHOW)\n $(parent)\n .removeClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(CLASS_NAME_SHOW)\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))\n .filter((item) => $(item).is(':visible'))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)\n .on(`${EVENT_CLICK_DATA_API} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n}\n\nconst DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(SELECTOR_DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {\n $(this._element).one(EVENT_MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(EVENT_FOCUSIN)\n\n $(this._element).removeClass(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach((htmlElement) => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n $(document).off(EVENT_FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.defaultPrevented) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n $(this._element).off(Util.TRANSITION_END)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n .emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\n }\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, (event) => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(EVENT_RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(CLASS_NAME_FADE)\n ? CLASS_NAME_FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(EVENT_CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(EVENT_SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(EVENT_HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nfunction allowedAttribute(attr, allowedAttributeList) {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].slice.call(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].slice.call(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach((attr) => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string|function)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)',\n sanitize : 'boolean',\n sanitizeFn : '(null|function)',\n whiteList : 'object',\n popperConfig : '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n}\n\nconst Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent',\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist,\n popperConfig : null\n}\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_ARROW = '.arrow'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const shadowRoot = Util.findShadowRoot(this.element)\n const isInTheDom = $.contains(\n shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n $(tip).addClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n $element.html(content)\n } else {\n $element.text(content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: SELECTOR_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (Util.isElement(this.config.container)) {\n return $(this.config.container)\n }\n\n return $(document).find(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(eventIn, this.config.selector, (event) => this._enter(event))\n .on(eventOut, this.config.selector, (event) => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = $(this.element).data()\n\n Object.keys(dataAttributes)\n .forEach((dataAttr) => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(SELECTOR_CONTENT), content)\n\n $tip.removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset : 10,\n method : 'auto',\n target : ''\n}\n\nconst DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(EVENT_SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? METHOD_OFFSET : METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map((selector) => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN)\n .find(SELECTOR_DROPDOWN_TOGGLE)\n .addClass(CLASS_NAME_ACTIVE)\n $link.addClass(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .addClass(CLASS_NAME_ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(SELECTOR_NAV_ITEMS)\n .children(SELECTOR_NAV_LINKS)\n .addClass(CLASS_NAME_ACTIVE)\n }\n\n $(this._scrollElement).trigger(EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n [].slice.call(document.querySelectorAll(this._selector))\n .filter((node) => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach((node) => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY))\n const scrollSpysLength = scrollSpys.length\n\n for (let i = scrollSpysLength; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = ScrollSpy._jQueryInterface\n$.fn[NAME].Constructor = ScrollSpy\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = '> li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(CLASS_NAME_ACTIVE) ||\n $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(EVENT_HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL')\n ? $(container).find(SELECTOR_ACTIVE_UL)\n : $(container).children(SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && $(active).hasClass(CLASS_NAME_FADE))\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .removeClass(CLASS_NAME_SHOW)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(CLASS_NAME_ACTIVE)\n\n const dropdownChild = $(active.parentNode).find(\n SELECTOR_DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(SELECTOR_DROPDOWN)[0]\n\n if (dropdownElement) {\n const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE))\n\n $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tab._jQueryInterface\n$.fn[NAME].Constructor = Tab\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation : 'boolean',\n autohide : 'boolean',\n delay : 'number'\n}\n\nconst Default = {\n animation : true,\n autohide : true,\n delay : 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = $.Event(EVENT_SHOW)\n\n $(this._element).trigger(showEvent)\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n $(this._element).trigger(EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n Util.reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._close()\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n\n $.removeData(this._element, DATA_KEY)\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...$(this._element).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE)\n $(this._element).trigger(EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Toast._jQueryInterface\n$.fn[NAME].Constructor = Toast\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n}\n\nexport default Toast\n"]} \ No newline at end of file +{"version":3,"sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tools/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"names":["transitionEndEmulator","duration","_this","this","called","$","one","Util","TRANSITION_END","setTimeout","triggerTransitionEnd","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","_","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","obj","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","call","expectedTypes","value","valueType","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","fn","jquery","emulateTransitionEnd","event","special","bindType","delegateType","handle","target","is","handleObj","handler","apply","arguments","NAME","JQUERY_NO_CONFLICT","Alert","_element","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","Event","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","Button","shouldAvoidTriggerChange","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","classList","contains","activeElement","focus","hasAttribute","setAttribute","toggleClass","avoidTriggerChange","button","initialButton","inputBtn","tagName","window","buttons","slice","querySelectorAll","i","len","length","add","EVENT_KEY","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_extends","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","originalEvent","pointerType","clientX","touches","end","clearTimeout","e","move","which","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","children","addClass","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","nextElementInterval","parseInt","defaultInterval","CLASS_NAME_ACTIVE","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","scrollSize","CLASS_NAME_COLLAPSE","getBoundingClientRect","triggerArrayLength","isTransitioning","_getTargetFromElement","triggerArray","isOpen","currentTarget","$trigger","selectors","$target","isBrowser","timeoutDuration","longerTimeoutBrowsers","userAgent","debounce","Promise","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","side","undefined","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","height","width","classCallCheck","instance","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","key","protoProps","staticProps","assign","source","getClientRect","offsets","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","offset","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","_ref","computeAutoPlacement","placement","refRect","rects","sortedAreas","keys","map","area","sort","a","b","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","state","commonOffsetParent","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","runModifiers","modifiers","ends","prop","findIndex","cur","forEach","console","warn","enabled","update","isDestroyed","arrowStyles","attributes","flipped","options","positionFixed","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toCheck","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","setupEventListeners","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","removeEventListener","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","concat","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","shift","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","x-placement","applyStyle","onLoad","modifierOptions","Popper","requestAnimationFrame","Utils","global","PopperUtils","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","boundary","display","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","referenceElement","_getPopperConfig","noop","hideEvent","stopPropagation","constructor","_getPlacement","$parentDropdown","_getOffset","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","item","EVENT_CLICK_DATA_API","backdrop","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","scrollHeight","modalTransitionDuration","modalBody","ELEMENT_NODE","appendChild","_enforceFocus","shownEvent","transitionComplete","_this5","has","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","calculatedMargin","elements","margin","scrollDiv","scrollbarWidth","_this11","uriAttrs","DefaultWhitelist","*","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","_loop","elName","attributeList","whitelistedAttributes","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","allowedAttribute","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","container","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","DATA_KEY","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","CLASS_NAME_FADE","content","text","empty","append","_handlePopperPlacementChange","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","$tip","tabClass","join","popperData","initConfigAnimation","Popover","_getContent","method","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","$link","parents","SELECTOR_NAV_LINKS","scrollSpys","$spy","Tab","previous","listElement","itemSelector","makeArray","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","$this","autohide","Toast","_clearTimeout","_close"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n\n return undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (_) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value) ?\n 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(CLASS_NAME_SHOW)\n\n if (!$(element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, event => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(EVENT_CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n EVENT_CLICK_DATA_API,\n SELECTOR_DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]'\nconst SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n this.shouldAvoidTriggerChange = false\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(SELECTOR_DATA_TOGGLES)[0]\n\n if (rootElement) {\n const input = this._element.querySelector(SELECTOR_INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(SELECTOR_ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n if (!this.shouldAvoidTriggerChange) {\n $(input).trigger('change')\n }\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config, avoidTriggerChange) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $element.data(DATA_KEY, data)\n }\n\n data.shouldAvoidTriggerChange = avoidTriggerChange\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n let button = event.target\n const initialButton = button\n\n if (!$(button).hasClass(CLASS_NAME_BUTTON)) {\n button = $(button).closest(SELECTOR_BUTTON)[0]\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault() // work around Firefox bug #1540995\n } else {\n const inputBtn = button.querySelector(SELECTOR_INPUT)\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault() // work around Firefox bug #1540995\n return\n }\n\n if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n Button._jQueryInterface.call($(button), 'toggle', initialButton.tagName === 'INPUT')\n }\n }\n })\n .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = $(event.target).closest(SELECTOR_BUTTON)[0]\n $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n // ensure correct active class is set to match the controls' actual values/states\n\n // find all checkboxes/readio buttons inside data-toggle groups\n let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n const input = button.querySelector(SELECTOR_INPUT)\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // find all button toggles\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n if (button.getAttribute('aria-pressed') === 'true') {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n const $element = $(this._element)\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($element.is(':visible') && $element.css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element).on(EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(EVENT_MOUSEENTER, event => this.pause(event))\n .on(EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n .on(EVENT_DRAG_START, e => e.preventDefault())\n\n if (this._pointerEvent) {\n $(this._element).on(EVENT_POINTERDOWN, event => start(event))\n $(this._element).on(EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n $(this._element).on(EVENT_TOUCHSTART, event => start(event))\n $(this._element).on(EVENT_TOUCHMOVE, event => move(event))\n $(this._element).on(EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) :\n []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM))\n const slideEvent = $.Event(EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(CLASS_NAME_ACTIVE)\n\n $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n $(nextElement).addClass(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst DIMENSION_WIDTH = 'width'\nconst DIMENSION_HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(EVENT_SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSE)\n .addClass(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = $.Event(EVENT_HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(CLASS_NAME_COLLAPSING)\n .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n $(trigger).addClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(CLASS_NAME_COLLAPSE)\n .trigger(EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(DIMENSION_WIDTH)\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n const children = [].slice.call(parent.querySelectorAll(selector))\n\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$element.data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show(true)\n }\n\n show(usePopper = false) {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(EVENT_SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(EVENT_CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) ?\n PLACEMENT_TOPEND :\n PLACEMENT_TOP\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this._config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n $(dropdownMenu).removeClass(CLASS_NAME_SHOW)\n $(parent)\n .removeClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(CLASS_NAME_SHOW)\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (!isActive || (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))\n .filter(item => $(item).is(':visible'))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)\n .on(`${EVENT_CLICK_DATA_API} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(SELECTOR_DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n event => this.hide(event)\n )\n\n $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {\n $(this._element).one(EVENT_MOUSEUP_DISMISS, event => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(EVENT_FOCUSIN)\n\n $(this._element).removeClass(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, event => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n $(document).off(EVENT_FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.isDefaultPrevented()) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n $(this._element).off(Util.TRANSITION_END)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n .emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\n }\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(EVENT_RESIZE, event => this.handleUpdate(event))\n } else {\n $(window).off(EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY) ?\n 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(EVENT_SHOW, showEvent => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(EVENT_HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nfunction allowedAttribute(attr, allowedAttributeList) {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].slice.call(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].slice.call(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object',\n popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist,\n popperConfig: null\n}\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_ARROW = '.arrow'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const shadowRoot = Util.findShadowRoot(this.element)\n const isInTheDom = $.contains(\n shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n $(tip).addClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n $element.html(content)\n } else {\n $element.text(content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: SELECTOR_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this.config.offset(data.offsets, this.element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (Util.isElement(this.config.container)) {\n return $(this.config.container)\n }\n\n return $(document).find(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(eventIn, this.config.selector, event => this._enter(event))\n .on(eventOut, this.config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = $(this.element).data()\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent($tip.find(SELECTOR_CONTENT), content)\n\n $tip.removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(EVENT_SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET : METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod : this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN)\n .find(SELECTOR_DROPDOWN_TOGGLE)\n .addClass(CLASS_NAME_ACTIVE)\n $link.addClass(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .addClass(CLASS_NAME_ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(SELECTOR_NAV_ITEMS)\n .children(SELECTOR_NAV_LINKS)\n .addClass(CLASS_NAME_ACTIVE)\n }\n\n $(this._scrollElement).trigger(EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n [].slice.call(document.querySelectorAll(this._selector))\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY))\n const scrollSpysLength = scrollSpys.length\n\n for (let i = scrollSpysLength; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = ScrollSpy._jQueryInterface\n$.fn[NAME].Constructor = ScrollSpy\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = '> li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(CLASS_NAME_ACTIVE) ||\n $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(EVENT_HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n $(container).find(SELECTOR_ACTIVE_UL) :\n $(container).children(SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && $(active).hasClass(CLASS_NAME_FADE))\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .removeClass(CLASS_NAME_SHOW)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(CLASS_NAME_ACTIVE)\n\n const dropdownChild = $(active.parentNode).find(\n SELECTOR_DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(SELECTOR_DROPDOWN)[0]\n\n if (dropdownElement) {\n const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE))\n\n $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tab._jQueryInterface\n$.fn[NAME].Constructor = Tab\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = $.Event(EVENT_SHOW)\n\n $(this._element).trigger(showEvent)\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n $(this._element).trigger(EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n Util.reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._close()\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n\n $.removeData(this._element, DATA_KEY)\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...$(this._element).data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE)\n $(this._element).trigger(EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Toast._jQueryInterface\n$.fn[NAME].Constructor = Toast\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n}\n\nexport default Toast\n"]} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/dist/js/bootstrap.js b/npm_assets/node_modules/bootstrap/dist/js/bootstrap.js index 0fb3f46e86..8b95e652f8 100644 --- a/npm_assets/node_modules/bootstrap/dist/js/bootstrap.js +++ b/npm_assets/node_modules/bootstrap/dist/js/bootstrap.js @@ -1,5 +1,5 @@ /*! - * Bootstrap v4.5.2 (https://getbootstrap.com/) + * Bootstrap v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -9,8 +9,10 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.bootstrap = {}, global.jQuery, global.Popper)); }(this, (function (exports, $, Popper) { 'use strict'; - $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $; - Popper = Popper && Object.prototype.hasOwnProperty.call(Popper, 'default') ? Popper['default'] : Popper; + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var $__default = /*#__PURE__*/_interopDefaultLegacy($); + var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper); function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { @@ -54,7 +56,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): util.js + * Bootstrap (v4.5.3): util.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -81,7 +83,7 @@ bindType: TRANSITION_END, delegateType: TRANSITION_END, handle: function handle(event) { - if ($(event.target).is(this)) { + if ($__default['default'](event.target).is(this)) { return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params } @@ -94,7 +96,7 @@ var _this = this; var called = false; - $(this).one(Util.TRANSITION_END, function () { + $__default['default'](this).one(Util.TRANSITION_END, function () { called = true; }); setTimeout(function () { @@ -106,8 +108,8 @@ } function setTransitionEndSupport() { - $.fn.emulateTransitionEnd = transitionEndEmulator; - $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent(); + $__default['default'].fn.emulateTransitionEnd = transitionEndEmulator; + $__default['default'].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent(); } /** * -------------------------------------------------------------------------- @@ -120,7 +122,6 @@ TRANSITION_END: 'bsTransitionEnd', getUID: function getUID(prefix) { do { - // eslint-disable-next-line no-bitwise prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here } while (document.getElementById(prefix)); @@ -136,7 +137,7 @@ try { return document.querySelector(selector) ? selector : null; - } catch (err) { + } catch (_) { return null; } }, @@ -146,8 +147,8 @@ } // Get transition-duration of the element - var transitionDuration = $(element).css('transition-duration'); - var transitionDelay = $(element).css('transition-delay'); + var transitionDuration = $__default['default'](element).css('transition-duration'); + var transitionDelay = $__default['default'](element).css('transition-delay'); var floatTransitionDuration = parseFloat(transitionDuration); var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found @@ -164,9 +165,8 @@ return element.offsetHeight; }, triggerTransitionEnd: function triggerTransitionEnd(element) { - $(element).trigger(TRANSITION_END); + $__default['default'](element).trigger(TRANSITION_END); }, - // TODO: Remove in v5 supportsTransitionEnd: function supportsTransitionEnd() { return Boolean(TRANSITION_END); }, @@ -209,11 +209,11 @@ return Util.findShadowRoot(element.parentNode); }, jQueryDetection: function jQueryDetection() { - if (typeof $ === 'undefined') { + if (typeof $__default['default'] === 'undefined') { throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.'); } - var version = $.fn.jquery.split(' ')[0].split('.'); + var version = $__default['default'].fn.jquery.split(' ')[0].split('.'); var minMajor = 1; var ltMajor = 2; var minMinor = 9; @@ -235,11 +235,11 @@ */ var NAME = 'alert'; - var VERSION = '4.5.2'; + var VERSION = '4.5.3'; var DATA_KEY = 'bs.alert'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; - var JQUERY_NO_CONFLICT = $.fn[NAME]; + var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME]; var SELECTOR_DISMISS = '[data-dismiss="alert"]'; var EVENT_CLOSE = "close" + EVENT_KEY; var EVENT_CLOSED = "closed" + EVENT_KEY; @@ -279,7 +279,7 @@ }; _proto.dispose = function dispose() { - $.removeData(this._element, DATA_KEY); + $__default['default'].removeData(this._element, DATA_KEY); this._element = null; } // Private ; @@ -293,43 +293,43 @@ } if (!parent) { - parent = $(element).closest("." + CLASS_NAME_ALERT)[0]; + parent = $__default['default'](element).closest("." + CLASS_NAME_ALERT)[0]; } return parent; }; _proto._triggerCloseEvent = function _triggerCloseEvent(element) { - var closeEvent = $.Event(EVENT_CLOSE); - $(element).trigger(closeEvent); + var closeEvent = $__default['default'].Event(EVENT_CLOSE); + $__default['default'](element).trigger(closeEvent); return closeEvent; }; _proto._removeElement = function _removeElement(element) { var _this = this; - $(element).removeClass(CLASS_NAME_SHOW); + $__default['default'](element).removeClass(CLASS_NAME_SHOW); - if (!$(element).hasClass(CLASS_NAME_FADE)) { + if (!$__default['default'](element).hasClass(CLASS_NAME_FADE)) { this._destroyElement(element); return; } var transitionDuration = Util.getTransitionDurationFromElement(element); - $(element).one(Util.TRANSITION_END, function (event) { + $__default['default'](element).one(Util.TRANSITION_END, function (event) { return _this._destroyElement(element, event); }).emulateTransitionEnd(transitionDuration); }; _proto._destroyElement = function _destroyElement(element) { - $(element).detach().trigger(EVENT_CLOSED).remove(); + $__default['default'](element).detach().trigger(EVENT_CLOSED).remove(); } // Static ; Alert._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var $element = $(this); + var $element = $__default['default'](this); var data = $element.data(DATA_KEY); if (!data) { @@ -369,18 +369,18 @@ */ - $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert())); + $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert())); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ */ - $.fn[NAME] = Alert._jQueryInterface; - $.fn[NAME].Constructor = Alert; + $__default['default'].fn[NAME] = Alert._jQueryInterface; + $__default['default'].fn[NAME].Constructor = Alert; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; + $__default['default'].fn[NAME].noConflict = function () { + $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT; return Alert._jQueryInterface; }; @@ -391,11 +391,11 @@ */ var NAME$1 = 'button'; - var VERSION$1 = '4.5.2'; + var VERSION$1 = '4.5.3'; var DATA_KEY$1 = 'bs.button'; var EVENT_KEY$1 = "." + DATA_KEY$1; var DATA_API_KEY$1 = '.data-api'; - var JQUERY_NO_CONFLICT$1 = $.fn[NAME$1]; + var JQUERY_NO_CONFLICT$1 = $__default['default'].fn[NAME$1]; var CLASS_NAME_ACTIVE = 'active'; var CLASS_NAME_BUTTON = 'btn'; var CLASS_NAME_FOCUS = 'focus'; @@ -418,6 +418,7 @@ var Button = /*#__PURE__*/function () { function Button(element) { this._element = element; + this.shouldAvoidTriggerChange = false; } // Getters @@ -427,7 +428,7 @@ _proto.toggle = function toggle() { var triggerChangeEvent = true; var addAriaPressed = true; - var rootElement = $(this._element).closest(SELECTOR_DATA_TOGGLES)[0]; + var rootElement = $__default['default'](this._element).closest(SELECTOR_DATA_TOGGLES)[0]; if (rootElement) { var input = this._element.querySelector(SELECTOR_INPUT); @@ -440,7 +441,7 @@ var activeElement = rootElement.querySelector(SELECTOR_ACTIVE); if (activeElement) { - $(activeElement).removeClass(CLASS_NAME_ACTIVE); + $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE); } } } @@ -451,7 +452,9 @@ input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE); } - $(input).trigger('change'); + if (!this.shouldAvoidTriggerChange) { + $__default['default'](input).trigger('change'); + } } input.focus(); @@ -465,26 +468,29 @@ } if (triggerChangeEvent) { - $(this._element).toggleClass(CLASS_NAME_ACTIVE); + $__default['default'](this._element).toggleClass(CLASS_NAME_ACTIVE); } } }; _proto.dispose = function dispose() { - $.removeData(this._element, DATA_KEY$1); + $__default['default'].removeData(this._element, DATA_KEY$1); this._element = null; } // Static ; - Button._jQueryInterface = function _jQueryInterface(config) { + Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) { return this.each(function () { - var data = $(this).data(DATA_KEY$1); + var $element = $__default['default'](this); + var data = $element.data(DATA_KEY$1); if (!data) { data = new Button(this); - $(this).data(DATA_KEY$1, data); + $element.data(DATA_KEY$1, data); } + data.shouldAvoidTriggerChange = avoidTriggerChange; + if (config === 'toggle') { data[config](); } @@ -507,12 +513,12 @@ */ - $(document).on(EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE_CARROT, function (event) { + $__default['default'](document).on(EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE_CARROT, function (event) { var button = event.target; var initialButton = button; - if (!$(button).hasClass(CLASS_NAME_BUTTON)) { - button = $(button).closest(SELECTOR_BUTTON)[0]; + if (!$__default['default'](button).hasClass(CLASS_NAME_BUTTON)) { + button = $__default['default'](button).closest(SELECTOR_BUTTON)[0]; } if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) { @@ -526,15 +532,15 @@ return; } - if (initialButton.tagName !== 'LABEL' || inputBtn && inputBtn.type !== 'checkbox') { - Button._jQueryInterface.call($(button), 'toggle'); + if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') { + Button._jQueryInterface.call($__default['default'](button), 'toggle', initialButton.tagName === 'INPUT'); } } }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) { - var button = $(event.target).closest(SELECTOR_BUTTON)[0]; - $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type)); + var button = $__default['default'](event.target).closest(SELECTOR_BUTTON)[0]; + $__default['default'](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type)); }); - $(window).on(EVENT_LOAD_DATA_API, function () { + $__default['default'](window).on(EVENT_LOAD_DATA_API, function () { // ensure correct active class is set to match the controls' actual values/states // find all checkboxes/readio buttons inside data-toggle groups var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS)); @@ -569,11 +575,11 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME$1] = Button._jQueryInterface; - $.fn[NAME$1].Constructor = Button; + $__default['default'].fn[NAME$1] = Button._jQueryInterface; + $__default['default'].fn[NAME$1].Constructor = Button; - $.fn[NAME$1].noConflict = function () { - $.fn[NAME$1] = JQUERY_NO_CONFLICT$1; + $__default['default'].fn[NAME$1].noConflict = function () { + $__default['default'].fn[NAME$1] = JQUERY_NO_CONFLICT$1; return Button._jQueryInterface; }; @@ -584,11 +590,11 @@ */ var NAME$2 = 'carousel'; - var VERSION$2 = '4.5.2'; + var VERSION$2 = '4.5.3'; var DATA_KEY$2 = 'bs.carousel'; var EVENT_KEY$2 = "." + DATA_KEY$2; var DATA_API_KEY$2 = '.data-api'; - var JQUERY_NO_CONFLICT$2 = $.fn[NAME$2]; + var JQUERY_NO_CONFLICT$2 = $__default['default'].fn[NAME$2]; var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key @@ -685,9 +691,10 @@ }; _proto.nextWhenVisible = function nextWhenVisible() { - // Don't call next when the page isn't visible + var $element = $__default['default'](this._element); // Don't call next when the page isn't visible // or the carousel or its parent isn't visible - if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') { + + if (!document.hidden && $element.is(':visible') && $element.css('visibility') !== 'hidden') { this.next(); } }; @@ -739,7 +746,7 @@ } if (this._isSliding) { - $(this._element).one(EVENT_SLID, function () { + $__default['default'](this._element).one(EVENT_SLID, function () { return _this.to(index); }); return; @@ -757,8 +764,8 @@ }; _proto.dispose = function dispose() { - $(this._element).off(EVENT_KEY$2); - $.removeData(this._element, DATA_KEY$2); + $__default['default'](this._element).off(EVENT_KEY$2); + $__default['default'].removeData(this._element, DATA_KEY$2); this._items = null; this._config = null; this._element = null; @@ -800,13 +807,13 @@ var _this2 = this; if (this._config.keyboard) { - $(this._element).on(EVENT_KEYDOWN, function (event) { + $__default['default'](this._element).on(EVENT_KEYDOWN, function (event) { return _this2._keydown(event); }); } if (this._config.pause === 'hover') { - $(this._element).on(EVENT_MOUSEENTER, function (event) { + $__default['default'](this._element).on(EVENT_MOUSEENTER, function (event) { return _this2.pause(event); }).on(EVENT_MOUSELEAVE, function (event) { return _this2.cycle(event); @@ -869,27 +876,27 @@ } }; - $(this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) { + $__default['default'](this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) { return e.preventDefault(); }); if (this._pointerEvent) { - $(this._element).on(EVENT_POINTERDOWN, function (event) { + $__default['default'](this._element).on(EVENT_POINTERDOWN, function (event) { return start(event); }); - $(this._element).on(EVENT_POINTERUP, function (event) { + $__default['default'](this._element).on(EVENT_POINTERUP, function (event) { return end(event); }); this._element.classList.add(CLASS_NAME_POINTER_EVENT); } else { - $(this._element).on(EVENT_TOUCHSTART, function (event) { + $__default['default'](this._element).on(EVENT_TOUCHSTART, function (event) { return start(event); }); - $(this._element).on(EVENT_TOUCHMOVE, function (event) { + $__default['default'](this._element).on(EVENT_TOUCHMOVE, function (event) { return move(event); }); - $(this._element).on(EVENT_TOUCHEND, function (event) { + $__default['default'](this._element).on(EVENT_TOUCHEND, function (event) { return end(event); }); } @@ -941,25 +948,25 @@ var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM)); - var slideEvent = $.Event(EVENT_SLIDE, { + var slideEvent = $__default['default'].Event(EVENT_SLIDE, { relatedTarget: relatedTarget, direction: eventDirectionName, from: fromIndex, to: targetIndex }); - $(this._element).trigger(slideEvent); + $__default['default'](this._element).trigger(slideEvent); return slideEvent; }; _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) { if (this._indicatorsElement) { var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE$1)); - $(indicators).removeClass(CLASS_NAME_ACTIVE$1); + $__default['default'](indicators).removeClass(CLASS_NAME_ACTIVE$1); var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; if (nextIndicator) { - $(nextIndicator).addClass(CLASS_NAME_ACTIVE$1); + $__default['default'](nextIndicator).addClass(CLASS_NAME_ACTIVE$1); } } }; @@ -990,7 +997,7 @@ eventDirectionName = DIRECTION_RIGHT; } - if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE$1)) { + if (nextElement && $__default['default'](nextElement).hasClass(CLASS_NAME_ACTIVE$1)) { this._isSliding = false; return; } @@ -1014,18 +1021,18 @@ this._setActiveIndicatorElement(nextElement); - var slidEvent = $.Event(EVENT_SLID, { + var slidEvent = $__default['default'].Event(EVENT_SLID, { relatedTarget: nextElement, direction: eventDirectionName, from: activeElementIndex, to: nextElementIndex }); - if ($(this._element).hasClass(CLASS_NAME_SLIDE)) { - $(nextElement).addClass(orderClassName); + if ($__default['default'](this._element).hasClass(CLASS_NAME_SLIDE)) { + $__default['default'](nextElement).addClass(orderClassName); Util.reflow(nextElement); - $(activeElement).addClass(directionalClassName); - $(nextElement).addClass(directionalClassName); + $__default['default'](activeElement).addClass(directionalClassName); + $__default['default'](nextElement).addClass(directionalClassName); var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10); if (nextElementInterval) { @@ -1036,19 +1043,19 @@ } var transitionDuration = Util.getTransitionDurationFromElement(activeElement); - $(activeElement).one(Util.TRANSITION_END, function () { - $(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(CLASS_NAME_ACTIVE$1); - $(activeElement).removeClass(CLASS_NAME_ACTIVE$1 + " " + orderClassName + " " + directionalClassName); + $__default['default'](activeElement).one(Util.TRANSITION_END, function () { + $__default['default'](nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(CLASS_NAME_ACTIVE$1); + $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE$1 + " " + orderClassName + " " + directionalClassName); _this4._isSliding = false; setTimeout(function () { - return $(_this4._element).trigger(slidEvent); + return $__default['default'](_this4._element).trigger(slidEvent); }, 0); }).emulateTransitionEnd(transitionDuration); } else { - $(activeElement).removeClass(CLASS_NAME_ACTIVE$1); - $(nextElement).addClass(CLASS_NAME_ACTIVE$1); + $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE$1); + $__default['default'](nextElement).addClass(CLASS_NAME_ACTIVE$1); this._isSliding = false; - $(this._element).trigger(slidEvent); + $__default['default'](this._element).trigger(slidEvent); } if (isCycling) { @@ -1059,9 +1066,9 @@ Carousel._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var data = $(this).data(DATA_KEY$2); + var data = $__default['default'](this).data(DATA_KEY$2); - var _config = _extends({}, Default, $(this).data()); + var _config = _extends({}, Default, $__default['default'](this).data()); if (typeof config === 'object') { _config = _extends({}, _config, config); @@ -1071,7 +1078,7 @@ if (!data) { data = new Carousel(this, _config); - $(this).data(DATA_KEY$2, data); + $__default['default'](this).data(DATA_KEY$2, data); } if (typeof config === 'number') { @@ -1096,13 +1103,13 @@ return; } - var target = $(selector)[0]; + var target = $__default['default'](selector)[0]; - if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) { + if (!target || !$__default['default'](target).hasClass(CLASS_NAME_CAROUSEL)) { return; } - var config = _extends({}, $(target).data(), $(this).data()); + var config = _extends({}, $__default['default'](target).data(), $__default['default'](this).data()); var slideIndex = this.getAttribute('data-slide-to'); @@ -1110,10 +1117,10 @@ config.interval = false; } - Carousel._jQueryInterface.call($(target), config); + Carousel._jQueryInterface.call($__default['default'](target), config); if (slideIndex) { - $(target).data(DATA_KEY$2).to(slideIndex); + $__default['default'](target).data(DATA_KEY$2).to(slideIndex); } event.preventDefault(); @@ -1140,12 +1147,12 @@ */ - $(document).on(EVENT_CLICK_DATA_API$2, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler); - $(window).on(EVENT_LOAD_DATA_API$1, function () { + $__default['default'](document).on(EVENT_CLICK_DATA_API$2, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler); + $__default['default'](window).on(EVENT_LOAD_DATA_API$1, function () { var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE)); for (var i = 0, len = carousels.length; i < len; i++) { - var $carousel = $(carousels[i]); + var $carousel = $__default['default'](carousels[i]); Carousel._jQueryInterface.call($carousel, $carousel.data()); } @@ -1156,11 +1163,11 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME$2] = Carousel._jQueryInterface; - $.fn[NAME$2].Constructor = Carousel; + $__default['default'].fn[NAME$2] = Carousel._jQueryInterface; + $__default['default'].fn[NAME$2].Constructor = Carousel; - $.fn[NAME$2].noConflict = function () { - $.fn[NAME$2] = JQUERY_NO_CONFLICT$2; + $__default['default'].fn[NAME$2].noConflict = function () { + $__default['default'].fn[NAME$2] = JQUERY_NO_CONFLICT$2; return Carousel._jQueryInterface; }; @@ -1171,11 +1178,11 @@ */ var NAME$3 = 'collapse'; - var VERSION$3 = '4.5.2'; + var VERSION$3 = '4.5.3'; var DATA_KEY$3 = 'bs.collapse'; var EVENT_KEY$3 = "." + DATA_KEY$3; var DATA_API_KEY$3 = '.data-api'; - var JQUERY_NO_CONFLICT$3 = $.fn[NAME$3]; + var JQUERY_NO_CONFLICT$3 = $__default['default'].fn[NAME$3]; var Default$1 = { toggle: true, parent: '' @@ -1241,7 +1248,7 @@ // Public _proto.toggle = function toggle() { - if ($(this._element).hasClass(CLASS_NAME_SHOW$1)) { + if ($__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) { this.hide(); } else { this.show(); @@ -1251,7 +1258,7 @@ _proto.show = function show() { var _this = this; - if (this._isTransitioning || $(this._element).hasClass(CLASS_NAME_SHOW$1)) { + if (this._isTransitioning || $__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) { return; } @@ -1273,64 +1280,64 @@ } if (actives) { - activesData = $(actives).not(this._selector).data(DATA_KEY$3); + activesData = $__default['default'](actives).not(this._selector).data(DATA_KEY$3); if (activesData && activesData._isTransitioning) { return; } } - var startEvent = $.Event(EVENT_SHOW); - $(this._element).trigger(startEvent); + var startEvent = $__default['default'].Event(EVENT_SHOW); + $__default['default'](this._element).trigger(startEvent); if (startEvent.isDefaultPrevented()) { return; } if (actives) { - Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide'); + Collapse._jQueryInterface.call($__default['default'](actives).not(this._selector), 'hide'); if (!activesData) { - $(actives).data(DATA_KEY$3, null); + $__default['default'](actives).data(DATA_KEY$3, null); } } var dimension = this._getDimension(); - $(this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING); + $__default['default'](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING); this._element.style[dimension] = 0; if (this._triggerArray.length) { - $(this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true); + $__default['default'](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true); } this.setTransitioning(true); var complete = function complete() { - $(_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW$1); + $__default['default'](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW$1); _this._element.style[dimension] = ''; _this.setTransitioning(false); - $(_this._element).trigger(EVENT_SHOWN); + $__default['default'](_this._element).trigger(EVENT_SHOWN); }; var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); var scrollSize = "scroll" + capitalizedDimension; var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); this._element.style[dimension] = this._element[scrollSize] + "px"; }; _proto.hide = function hide() { var _this2 = this; - if (this._isTransitioning || !$(this._element).hasClass(CLASS_NAME_SHOW$1)) { + if (this._isTransitioning || !$__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) { return; } - var startEvent = $.Event(EVENT_HIDE); - $(this._element).trigger(startEvent); + var startEvent = $__default['default'].Event(EVENT_HIDE); + $__default['default'](this._element).trigger(startEvent); if (startEvent.isDefaultPrevented()) { return; @@ -1340,7 +1347,7 @@ this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px"; Util.reflow(this._element); - $(this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW$1); + $__default['default'](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW$1); var triggerArrayLength = this._triggerArray.length; if (triggerArrayLength > 0) { @@ -1349,10 +1356,10 @@ var selector = Util.getSelectorFromElement(trigger); if (selector !== null) { - var $elem = $([].slice.call(document.querySelectorAll(selector))); + var $elem = $__default['default']([].slice.call(document.querySelectorAll(selector))); if (!$elem.hasClass(CLASS_NAME_SHOW$1)) { - $(trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false); + $__default['default'](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false); } } } @@ -1363,12 +1370,12 @@ var complete = function complete() { _this2.setTransitioning(false); - $(_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN); + $__default['default'](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN); }; this._element.style[dimension] = ''; var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); }; _proto.setTransitioning = function setTransitioning(isTransitioning) { @@ -1376,7 +1383,7 @@ }; _proto.dispose = function dispose() { - $.removeData(this._element, DATA_KEY$3); + $__default['default'].removeData(this._element, DATA_KEY$3); this._config = null; this._parent = null; this._element = null; @@ -1394,7 +1401,7 @@ }; _proto._getDimension = function _getDimension() { - var hasWidth = $(this._element).hasClass(DIMENSION_WIDTH); + var hasWidth = $__default['default'](this._element).hasClass(DIMENSION_WIDTH); return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT; }; @@ -1415,17 +1422,17 @@ var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]"; var children = [].slice.call(parent.querySelectorAll(selector)); - $(children).each(function (i, element) { + $__default['default'](children).each(function (i, element) { _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]); }); return parent; }; _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) { - var isOpen = $(element).hasClass(CLASS_NAME_SHOW$1); + var isOpen = $__default['default'](element).hasClass(CLASS_NAME_SHOW$1); if (triggerArray.length) { - $(triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen); + $__default['default'](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen); } } // Static ; @@ -1437,10 +1444,10 @@ Collapse._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var $this = $(this); - var data = $this.data(DATA_KEY$3); + var $element = $__default['default'](this); + var data = $element.data(DATA_KEY$3); - var _config = _extends({}, Default$1, $this.data(), typeof config === 'object' && config ? config : {}); + var _config = _extends({}, Default$1, $element.data(), typeof config === 'object' && config ? config : {}); if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) { _config.toggle = false; @@ -1448,7 +1455,7 @@ if (!data) { data = new Collapse(this, _config); - $this.data(DATA_KEY$3, data); + $element.data(DATA_KEY$3, data); } if (typeof config === 'string') { @@ -1482,17 +1489,17 @@ */ - $(document).on(EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, function (event) { + $__default['default'](document).on(EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, function (event) { // preventDefault only for <a> elements (which change the URL) not inside the collapsible element if (event.currentTarget.tagName === 'A') { event.preventDefault(); } - var $trigger = $(this); + var $trigger = $__default['default'](this); var selector = Util.getSelectorFromElement(this); var selectors = [].slice.call(document.querySelectorAll(selector)); - $(selectors).each(function () { - var $target = $(this); + $__default['default'](selectors).each(function () { + var $target = $__default['default'](this); var data = $target.data(DATA_KEY$3); var config = data ? 'toggle' : $trigger.data(); @@ -1505,11 +1512,11 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME$3] = Collapse._jQueryInterface; - $.fn[NAME$3].Constructor = Collapse; + $__default['default'].fn[NAME$3] = Collapse._jQueryInterface; + $__default['default'].fn[NAME$3].Constructor = Collapse; - $.fn[NAME$3].noConflict = function () { - $.fn[NAME$3] = JQUERY_NO_CONFLICT$3; + $__default['default'].fn[NAME$3].noConflict = function () { + $__default['default'].fn[NAME$3] = JQUERY_NO_CONFLICT$3; return Collapse._jQueryInterface; }; @@ -1520,11 +1527,11 @@ */ var NAME$4 = 'dropdown'; - var VERSION$4 = '4.5.2'; + var VERSION$4 = '4.5.3'; var DATA_KEY$4 = 'bs.dropdown'; var EVENT_KEY$4 = "." + DATA_KEY$4; var DATA_API_KEY$4 = '.data-api'; - var JQUERY_NO_CONFLICT$4 = $.fn[NAME$4]; + var JQUERY_NO_CONFLICT$4 = $__default['default'].fn[NAME$4]; var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key @@ -1602,11 +1609,11 @@ // Public _proto.toggle = function toggle() { - if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) { + if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED)) { return; } - var isActive = $(this._menu).hasClass(CLASS_NAME_SHOW$2); + var isActive = $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2); Dropdown._clearMenus(); @@ -1622,18 +1629,18 @@ usePopper = false; } - if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW$2)) { + if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2)) { return; } var relatedTarget = { relatedTarget: this._element }; - var showEvent = $.Event(EVENT_SHOW$1, relatedTarget); + var showEvent = $__default['default'].Event(EVENT_SHOW$1, relatedTarget); var parent = Dropdown._getParentFromElement(this._element); - $(parent).trigger(showEvent); + $__default['default'](parent).trigger(showEvent); if (showEvent.isDefaultPrevented()) { return; @@ -1645,7 +1652,7 @@ * Check for Popper dependency * Popper - https://popper.js.org */ - if (typeof Popper === 'undefined') { + if (typeof Popper__default['default'] === 'undefined') { throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org/)'); } @@ -1665,41 +1672,41 @@ if (this._config.boundary !== 'scrollParent') { - $(parent).addClass(CLASS_NAME_POSITION_STATIC); + $__default['default'](parent).addClass(CLASS_NAME_POSITION_STATIC); } - this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig()); + this._popper = new Popper__default['default'](referenceElement, this._menu, this._getPopperConfig()); } // If this is a touch-enabled device we add extra // empty mouseover listeners to the body's immediate children; // only needed because of broken event delegation on iOS // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html - if ('ontouchstart' in document.documentElement && $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) { - $(document.body).children().on('mouseover', null, $.noop); + if ('ontouchstart' in document.documentElement && $__default['default'](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) { + $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop); } this._element.focus(); this._element.setAttribute('aria-expanded', true); - $(this._menu).toggleClass(CLASS_NAME_SHOW$2); - $(parent).toggleClass(CLASS_NAME_SHOW$2).trigger($.Event(EVENT_SHOWN$1, relatedTarget)); + $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW$2); + $__default['default'](parent).toggleClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_SHOWN$1, relatedTarget)); }; _proto.hide = function hide() { - if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW$2)) { + if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || !$__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2)) { return; } var relatedTarget = { relatedTarget: this._element }; - var hideEvent = $.Event(EVENT_HIDE$1, relatedTarget); + var hideEvent = $__default['default'].Event(EVENT_HIDE$1, relatedTarget); var parent = Dropdown._getParentFromElement(this._element); - $(parent).trigger(hideEvent); + $__default['default'](parent).trigger(hideEvent); if (hideEvent.isDefaultPrevented()) { return; @@ -1709,13 +1716,13 @@ this._popper.destroy(); } - $(this._menu).toggleClass(CLASS_NAME_SHOW$2); - $(parent).toggleClass(CLASS_NAME_SHOW$2).trigger($.Event(EVENT_HIDDEN$1, relatedTarget)); + $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW$2); + $__default['default'](parent).toggleClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_HIDDEN$1, relatedTarget)); }; _proto.dispose = function dispose() { - $.removeData(this._element, DATA_KEY$4); - $(this._element).off(EVENT_KEY$4); + $__default['default'].removeData(this._element, DATA_KEY$4); + $__default['default'](this._element).off(EVENT_KEY$4); this._element = null; this._menu = null; @@ -1738,7 +1745,7 @@ _proto._addEventListeners = function _addEventListeners() { var _this = this; - $(this._element).on(EVENT_CLICK, function (event) { + $__default['default'](this._element).on(EVENT_CLICK, function (event) { event.preventDefault(); event.stopPropagation(); @@ -1747,7 +1754,7 @@ }; _proto._getConfig = function _getConfig(config) { - config = _extends({}, this.constructor.Default, $(this._element).data(), config); + config = _extends({}, this.constructor.Default, $__default['default'](this._element).data(), config); Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType); return config; }; @@ -1765,16 +1772,16 @@ }; _proto._getPlacement = function _getPlacement() { - var $parentDropdown = $(this._element.parentNode); + var $parentDropdown = $__default['default'](this._element.parentNode); var placement = PLACEMENT_BOTTOM; // Handle dropup if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) { - placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP; + placement = $__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP; } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) { placement = PLACEMENT_RIGHT; } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) { placement = PLACEMENT_LEFT; - } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) { + } else if ($__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT)) { placement = PLACEMENT_BOTTOMEND; } @@ -1782,7 +1789,7 @@ }; _proto._detectNavbar = function _detectNavbar() { - return $(this._element).closest('.navbar').length > 0; + return $__default['default'](this._element).closest('.navbar').length > 0; }; _proto._getOffset = function _getOffset() { @@ -1828,13 +1835,13 @@ Dropdown._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var data = $(this).data(DATA_KEY$4); + var data = $__default['default'](this).data(DATA_KEY$4); var _config = typeof config === 'object' ? config : null; if (!data) { data = new Dropdown(this, _config); - $(this).data(DATA_KEY$4, data); + $__default['default'](this).data(DATA_KEY$4, data); } if (typeof config === 'string') { @@ -1857,7 +1864,7 @@ for (var i = 0, len = toggles.length; i < len; i++) { var parent = Dropdown._getParentFromElement(toggles[i]); - var context = $(toggles[i]).data(DATA_KEY$4); + var context = $__default['default'](toggles[i]).data(DATA_KEY$4); var relatedTarget = { relatedTarget: toggles[i] }; @@ -1872,16 +1879,16 @@ var dropdownMenu = context._menu; - if (!$(parent).hasClass(CLASS_NAME_SHOW$2)) { + if (!$__default['default'](parent).hasClass(CLASS_NAME_SHOW$2)) { continue; } - if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) { + if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default['default'].contains(parent, event.target)) { continue; } - var hideEvent = $.Event(EVENT_HIDE$1, relatedTarget); - $(parent).trigger(hideEvent); + var hideEvent = $__default['default'].Event(EVENT_HIDE$1, relatedTarget); + $__default['default'](parent).trigger(hideEvent); if (hideEvent.isDefaultPrevented()) { continue; @@ -1890,7 +1897,7 @@ if ('ontouchstart' in document.documentElement) { - $(document.body).children().off('mouseover', null, $.noop); + $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop); } toggles[i].setAttribute('aria-expanded', 'false'); @@ -1899,8 +1906,8 @@ context._popper.destroy(); } - $(dropdownMenu).removeClass(CLASS_NAME_SHOW$2); - $(parent).removeClass(CLASS_NAME_SHOW$2).trigger($.Event(EVENT_HIDDEN$1, relatedTarget)); + $__default['default'](dropdownMenu).removeClass(CLASS_NAME_SHOW$2); + $__default['default'](parent).removeClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_HIDDEN$1, relatedTarget)); } }; @@ -1924,17 +1931,17 @@ // - If key is other than escape // - If key is not up or down => not a dropdown command // - If trigger inside the menu => not a dropdown command - if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) { + if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default['default'](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) { return; } - if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) { + if (this.disabled || $__default['default'](this).hasClass(CLASS_NAME_DISABLED)) { return; } var parent = Dropdown._getParentFromElement(this); - var isActive = $(parent).hasClass(CLASS_NAME_SHOW$2); + var isActive = $__default['default'](parent).hasClass(CLASS_NAME_SHOW$2); if (!isActive && event.which === ESCAPE_KEYCODE) { return; @@ -1943,17 +1950,17 @@ event.preventDefault(); event.stopPropagation(); - if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) { + if (!isActive || event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE) { if (event.which === ESCAPE_KEYCODE) { - $(parent.querySelector(SELECTOR_DATA_TOGGLE$2)).trigger('focus'); + $__default['default'](parent.querySelector(SELECTOR_DATA_TOGGLE$2)).trigger('focus'); } - $(this).trigger('click'); + $__default['default'](this).trigger('click'); return; } var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) { - return $(item).is(':visible'); + return $__default['default'](item).is(':visible'); }); if (items.length === 0) { @@ -2005,11 +2012,11 @@ */ - $(document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API$4 + " " + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$2, function (event) { + $__default['default'](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API$4 + " " + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$2, function (event) { event.preventDefault(); event.stopPropagation(); - Dropdown._jQueryInterface.call($(this), 'toggle'); + Dropdown._jQueryInterface.call($__default['default'](this), 'toggle'); }).on(EVENT_CLICK_DATA_API$4, SELECTOR_FORM_CHILD, function (e) { e.stopPropagation(); }); @@ -2019,11 +2026,11 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME$4] = Dropdown._jQueryInterface; - $.fn[NAME$4].Constructor = Dropdown; + $__default['default'].fn[NAME$4] = Dropdown._jQueryInterface; + $__default['default'].fn[NAME$4].Constructor = Dropdown; - $.fn[NAME$4].noConflict = function () { - $.fn[NAME$4] = JQUERY_NO_CONFLICT$4; + $__default['default'].fn[NAME$4].noConflict = function () { + $__default['default'].fn[NAME$4] = JQUERY_NO_CONFLICT$4; return Dropdown._jQueryInterface; }; @@ -2034,11 +2041,11 @@ */ var NAME$5 = 'modal'; - var VERSION$5 = '4.5.2'; + var VERSION$5 = '4.5.3'; var DATA_KEY$5 = 'bs.modal'; var EVENT_KEY$5 = "." + DATA_KEY$5; var DATA_API_KEY$5 = '.data-api'; - var JQUERY_NO_CONFLICT$5 = $.fn[NAME$5]; + var JQUERY_NO_CONFLICT$5 = $__default['default'].fn[NAME$5]; var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key var Default$3 = { @@ -2112,14 +2119,14 @@ return; } - if ($(this._element).hasClass(CLASS_NAME_FADE$1)) { + if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE$1)) { this._isTransitioning = true; } - var showEvent = $.Event(EVENT_SHOW$2, { + var showEvent = $__default['default'].Event(EVENT_SHOW$2, { relatedTarget: relatedTarget }); - $(this._element).trigger(showEvent); + $__default['default'](this._element).trigger(showEvent); if (this._isShown || showEvent.isDefaultPrevented()) { return; @@ -2137,12 +2144,12 @@ this._setResizeEvent(); - $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) { + $__default['default'](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) { return _this.hide(event); }); - $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () { - $(_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) { - if ($(event.target).is(_this._element)) { + $__default['default'](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () { + $__default['default'](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) { + if ($__default['default'](event.target).is(_this._element)) { _this._ignoreBackdropClick = true; } }); @@ -2164,15 +2171,15 @@ return; } - var hideEvent = $.Event(EVENT_HIDE$2); - $(this._element).trigger(hideEvent); + var hideEvent = $__default['default'].Event(EVENT_HIDE$2); + $__default['default'](this._element).trigger(hideEvent); if (!this._isShown || hideEvent.isDefaultPrevented()) { return; } this._isShown = false; - var transition = $(this._element).hasClass(CLASS_NAME_FADE$1); + var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1); if (transition) { this._isTransitioning = true; @@ -2182,14 +2189,14 @@ this._setResizeEvent(); - $(document).off(EVENT_FOCUSIN); - $(this._element).removeClass(CLASS_NAME_SHOW$3); - $(this._element).off(EVENT_CLICK_DISMISS); - $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS); + $__default['default'](document).off(EVENT_FOCUSIN); + $__default['default'](this._element).removeClass(CLASS_NAME_SHOW$3); + $__default['default'](this._element).off(EVENT_CLICK_DISMISS); + $__default['default'](this._dialog).off(EVENT_MOUSEDOWN_DISMISS); if (transition) { var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $(this._element).one(Util.TRANSITION_END, function (event) { + $__default['default'](this._element).one(Util.TRANSITION_END, function (event) { return _this2._hideModal(event); }).emulateTransitionEnd(transitionDuration); } else { @@ -2199,7 +2206,7 @@ _proto.dispose = function dispose() { [window, this._element, this._dialog].forEach(function (htmlElement) { - return $(htmlElement).off(EVENT_KEY$5); + return $__default['default'](htmlElement).off(EVENT_KEY$5); }); /** * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API` @@ -2207,8 +2214,8 @@ * It will remove `EVENT_CLICK_DATA_API` event that should remain */ - $(document).off(EVENT_FOCUSIN); - $.removeData(this._element, DATA_KEY$5); + $__default['default'](document).off(EVENT_FOCUSIN); + $__default['default'].removeData(this._element, DATA_KEY$5); this._config = null; this._element = null; this._dialog = null; @@ -2235,10 +2242,10 @@ var _this3 = this; if (this._config.backdrop === 'static') { - var hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED); - $(this._element).trigger(hideEventPrevented); + var hideEventPrevented = $__default['default'].Event(EVENT_HIDE_PREVENTED); + $__default['default'](this._element).trigger(hideEventPrevented); - if (hideEventPrevented.defaultPrevented) { + if (hideEventPrevented.isDefaultPrevented()) { return; } @@ -2251,12 +2258,12 @@ this._element.classList.add(CLASS_NAME_STATIC); var modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog); - $(this._element).off(Util.TRANSITION_END); - $(this._element).one(Util.TRANSITION_END, function () { + $__default['default'](this._element).off(Util.TRANSITION_END); + $__default['default'](this._element).one(Util.TRANSITION_END, function () { _this3._element.classList.remove(CLASS_NAME_STATIC); if (!isModalOverflowing) { - $(_this3._element).one(Util.TRANSITION_END, function () { + $__default['default'](_this3._element).one(Util.TRANSITION_END, function () { _this3._element.style.overflowY = ''; }).emulateTransitionEnd(_this3._element, modalTransitionDuration); } @@ -2271,7 +2278,7 @@ _proto._showElement = function _showElement(relatedTarget) { var _this4 = this; - var transition = $(this._element).hasClass(CLASS_NAME_FADE$1); + var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1); var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null; if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { @@ -2287,7 +2294,7 @@ this._element.setAttribute('role', 'dialog'); - if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) { + if ($__default['default'](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) { modalBody.scrollTop = 0; } else { this._element.scrollTop = 0; @@ -2297,13 +2304,13 @@ Util.reflow(this._element); } - $(this._element).addClass(CLASS_NAME_SHOW$3); + $__default['default'](this._element).addClass(CLASS_NAME_SHOW$3); if (this._config.focus) { this._enforceFocus(); } - var shownEvent = $.Event(EVENT_SHOWN$2, { + var shownEvent = $__default['default'].Event(EVENT_SHOWN$2, { relatedTarget: relatedTarget }); @@ -2313,12 +2320,12 @@ } _this4._isTransitioning = false; - $(_this4._element).trigger(shownEvent); + $__default['default'](_this4._element).trigger(shownEvent); }; if (transition) { var transitionDuration = Util.getTransitionDurationFromElement(this._dialog); - $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration); + $__default['default'](this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration); } else { transitionComplete(); } @@ -2327,9 +2334,9 @@ _proto._enforceFocus = function _enforceFocus() { var _this5 = this; - $(document).off(EVENT_FOCUSIN) // Guard against infinite focus loop + $__default['default'](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop .on(EVENT_FOCUSIN, function (event) { - if (document !== event.target && _this5._element !== event.target && $(_this5._element).has(event.target).length === 0) { + if (document !== event.target && _this5._element !== event.target && $__default['default'](_this5._element).has(event.target).length === 0) { _this5._element.focus(); } }); @@ -2339,7 +2346,7 @@ var _this6 = this; if (this._isShown) { - $(this._element).on(EVENT_KEYDOWN_DISMISS, function (event) { + $__default['default'](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) { if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE$1) { event.preventDefault(); @@ -2349,7 +2356,7 @@ } }); } else if (!this._isShown) { - $(this._element).off(EVENT_KEYDOWN_DISMISS); + $__default['default'](this._element).off(EVENT_KEYDOWN_DISMISS); } }; @@ -2357,11 +2364,11 @@ var _this7 = this; if (this._isShown) { - $(window).on(EVENT_RESIZE, function (event) { + $__default['default'](window).on(EVENT_RESIZE, function (event) { return _this7.handleUpdate(event); }); } else { - $(window).off(EVENT_RESIZE); + $__default['default'](window).off(EVENT_RESIZE); } }; @@ -2379,19 +2386,19 @@ this._isTransitioning = false; this._showBackdrop(function () { - $(document.body).removeClass(CLASS_NAME_OPEN); + $__default['default'](document.body).removeClass(CLASS_NAME_OPEN); _this8._resetAdjustments(); _this8._resetScrollbar(); - $(_this8._element).trigger(EVENT_HIDDEN$2); + $__default['default'](_this8._element).trigger(EVENT_HIDDEN$2); }); }; _proto._removeBackdrop = function _removeBackdrop() { if (this._backdrop) { - $(this._backdrop).remove(); + $__default['default'](this._backdrop).remove(); this._backdrop = null; } }; @@ -2399,7 +2406,7 @@ _proto._showBackdrop = function _showBackdrop(callback) { var _this9 = this; - var animate = $(this._element).hasClass(CLASS_NAME_FADE$1) ? CLASS_NAME_FADE$1 : ''; + var animate = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1) ? CLASS_NAME_FADE$1 : ''; if (this._isShown && this._config.backdrop) { this._backdrop = document.createElement('div'); @@ -2409,8 +2416,8 @@ this._backdrop.classList.add(animate); } - $(this._backdrop).appendTo(document.body); - $(this._element).on(EVENT_CLICK_DISMISS, function (event) { + $__default['default'](this._backdrop).appendTo(document.body); + $__default['default'](this._element).on(EVENT_CLICK_DISMISS, function (event) { if (_this9._ignoreBackdropClick) { _this9._ignoreBackdropClick = false; return; @@ -2427,7 +2434,7 @@ Util.reflow(this._backdrop); } - $(this._backdrop).addClass(CLASS_NAME_SHOW$3); + $__default['default'](this._backdrop).addClass(CLASS_NAME_SHOW$3); if (!callback) { return; @@ -2439,9 +2446,9 @@ } var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop); - $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration); + $__default['default'](this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration); } else if (!this._isShown && this._backdrop) { - $(this._backdrop).removeClass(CLASS_NAME_SHOW$3); + $__default['default'](this._backdrop).removeClass(CLASS_NAME_SHOW$3); var callbackRemove = function callbackRemove() { _this9._removeBackdrop(); @@ -2451,10 +2458,10 @@ } }; - if ($(this._element).hasClass(CLASS_NAME_FADE$1)) { + if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE$1)) { var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop); - $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration); + $__default['default'](this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration); } else { callbackRemove(); } @@ -2499,46 +2506,46 @@ var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT)); var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding - $(fixedContent).each(function (index, element) { + $__default['default'](fixedContent).each(function (index, element) { var actualPadding = element.style.paddingRight; - var calculatedPadding = $(element).css('padding-right'); - $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px"); + var calculatedPadding = $__default['default'](element).css('padding-right'); + $__default['default'](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px"); }); // Adjust sticky content margin - $(stickyContent).each(function (index, element) { + $__default['default'](stickyContent).each(function (index, element) { var actualMargin = element.style.marginRight; - var calculatedMargin = $(element).css('margin-right'); - $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px"); + var calculatedMargin = $__default['default'](element).css('margin-right'); + $__default['default'](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px"); }); // Adjust body padding var actualPadding = document.body.style.paddingRight; - var calculatedPadding = $(document.body).css('padding-right'); - $(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px"); + var calculatedPadding = $__default['default'](document.body).css('padding-right'); + $__default['default'](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px"); } - $(document.body).addClass(CLASS_NAME_OPEN); + $__default['default'](document.body).addClass(CLASS_NAME_OPEN); }; _proto._resetScrollbar = function _resetScrollbar() { // Restore fixed content padding var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT)); - $(fixedContent).each(function (index, element) { - var padding = $(element).data('padding-right'); - $(element).removeData('padding-right'); + $__default['default'](fixedContent).each(function (index, element) { + var padding = $__default['default'](element).data('padding-right'); + $__default['default'](element).removeData('padding-right'); element.style.paddingRight = padding ? padding : ''; }); // Restore sticky content var elements = [].slice.call(document.querySelectorAll("" + SELECTOR_STICKY_CONTENT)); - $(elements).each(function (index, element) { - var margin = $(element).data('margin-right'); + $__default['default'](elements).each(function (index, element) { + var margin = $__default['default'](element).data('margin-right'); if (typeof margin !== 'undefined') { - $(element).css('margin-right', margin).removeData('margin-right'); + $__default['default'](element).css('margin-right', margin).removeData('margin-right'); } }); // Restore body padding - var padding = $(document.body).data('padding-right'); - $(document.body).removeData('padding-right'); + var padding = $__default['default'](document.body).data('padding-right'); + $__default['default'](document.body).removeData('padding-right'); document.body.style.paddingRight = padding ? padding : ''; }; @@ -2555,13 +2562,13 @@ Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) { return this.each(function () { - var data = $(this).data(DATA_KEY$5); + var data = $__default['default'](this).data(DATA_KEY$5); - var _config = _extends({}, Default$3, $(this).data(), typeof config === 'object' && config ? config : {}); + var _config = _extends({}, Default$3, $__default['default'](this).data(), typeof config === 'object' && config ? config : {}); if (!data) { data = new Modal(this, _config); - $(this).data(DATA_KEY$5, data); + $__default['default'](this).data(DATA_KEY$5, data); } if (typeof config === 'string') { @@ -2597,7 +2604,7 @@ */ - $(document).on(EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, function (event) { + $__default['default'](document).on(EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, function (event) { var _this11 = this; var target; @@ -2607,26 +2614,26 @@ target = document.querySelector(selector); } - var config = $(target).data(DATA_KEY$5) ? 'toggle' : _extends({}, $(target).data(), $(this).data()); + var config = $__default['default'](target).data(DATA_KEY$5) ? 'toggle' : _extends({}, $__default['default'](target).data(), $__default['default'](this).data()); if (this.tagName === 'A' || this.tagName === 'AREA') { event.preventDefault(); } - var $target = $(target).one(EVENT_SHOW$2, function (showEvent) { + var $target = $__default['default'](target).one(EVENT_SHOW$2, function (showEvent) { if (showEvent.isDefaultPrevented()) { // Only register focus restorer if modal will actually get shown return; } $target.one(EVENT_HIDDEN$2, function () { - if ($(_this11).is(':visible')) { + if ($__default['default'](_this11).is(':visible')) { _this11.focus(); } }); }); - Modal._jQueryInterface.call($(target), config, this); + Modal._jQueryInterface.call($__default['default'](target), config, this); }); /** * ------------------------------------------------------------------------ @@ -2634,17 +2641,17 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME$5] = Modal._jQueryInterface; - $.fn[NAME$5].Constructor = Modal; + $__default['default'].fn[NAME$5] = Modal._jQueryInterface; + $__default['default'].fn[NAME$5].Constructor = Modal; - $.fn[NAME$5].noConflict = function () { - $.fn[NAME$5] = JQUERY_NO_CONFLICT$5; + $__default['default'].fn[NAME$5].noConflict = function () { + $__default['default'].fn[NAME$5] = JQUERY_NO_CONFLICT$5; return Modal._jQueryInterface; }; /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): tools/sanitizer.js + * Bootstrap (v4.5.3): tools/sanitizer.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -2770,10 +2777,10 @@ */ var NAME$6 = 'tooltip'; - var VERSION$6 = '4.5.2'; + var VERSION$6 = '4.5.3'; var DATA_KEY$6 = 'bs.tooltip'; var EVENT_KEY$6 = "." + DATA_KEY$6; - var JQUERY_NO_CONFLICT$6 = $.fn[NAME$6]; + var JQUERY_NO_CONFLICT$6 = $__default['default'].fn[NAME$6]; var CLASS_PREFIX = 'bs-tooltip'; var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']; @@ -2850,7 +2857,7 @@ var Tooltip = /*#__PURE__*/function () { function Tooltip(element, config) { - if (typeof Popper === 'undefined') { + if (typeof Popper__default['default'] === 'undefined') { throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org/)'); } // private @@ -2891,11 +2898,11 @@ if (event) { var dataKey = this.constructor.DATA_KEY; - var context = $(event.currentTarget).data(dataKey); + var context = $__default['default'](event.currentTarget).data(dataKey); if (!context) { context = new this.constructor(event.currentTarget, this._getDelegateConfig()); - $(event.currentTarget).data(dataKey, context); + $__default['default'](event.currentTarget).data(dataKey, context); } context._activeTrigger.click = !context._activeTrigger.click; @@ -2906,7 +2913,7 @@ context._leave(null, context); } } else { - if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW$4)) { + if ($__default['default'](this.getTipElement()).hasClass(CLASS_NAME_SHOW$4)) { this._leave(null, this); return; @@ -2918,12 +2925,12 @@ _proto.dispose = function dispose() { clearTimeout(this._timeout); - $.removeData(this.element, this.constructor.DATA_KEY); - $(this.element).off(this.constructor.EVENT_KEY); - $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler); + $__default['default'].removeData(this.element, this.constructor.DATA_KEY); + $__default['default'](this.element).off(this.constructor.EVENT_KEY); + $__default['default'](this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler); if (this.tip) { - $(this.tip).remove(); + $__default['default'](this.tip).remove(); } this._isEnabled = null; @@ -2944,16 +2951,16 @@ _proto.show = function show() { var _this = this; - if ($(this.element).css('display') === 'none') { + if ($__default['default'](this.element).css('display') === 'none') { throw new Error('Please use show on visible elements'); } - var showEvent = $.Event(this.constructor.Event.SHOW); + var showEvent = $__default['default'].Event(this.constructor.Event.SHOW); if (this.isWithContent() && this._isEnabled) { - $(this.element).trigger(showEvent); + $__default['default'](this.element).trigger(showEvent); var shadowRoot = Util.findShadowRoot(this.element); - var isInTheDom = $.contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element); + var isInTheDom = $__default['default'].contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element); if (showEvent.isDefaultPrevented() || !isInTheDom) { return; @@ -2966,7 +2973,7 @@ this.setContent(); if (this.config.animation) { - $(tip).addClass(CLASS_NAME_FADE$2); + $__default['default'](tip).addClass(CLASS_NAME_FADE$2); } var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement; @@ -2977,21 +2984,21 @@ var container = this._getContainer(); - $(tip).data(this.constructor.DATA_KEY, this); + $__default['default'](tip).data(this.constructor.DATA_KEY, this); - if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) { - $(tip).appendTo(container); + if (!$__default['default'].contains(this.element.ownerDocument.documentElement, this.tip)) { + $__default['default'](tip).appendTo(container); } - $(this.element).trigger(this.constructor.Event.INSERTED); - this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment)); - $(tip).addClass(CLASS_NAME_SHOW$4); // If this is a touch-enabled device we add extra + $__default['default'](this.element).trigger(this.constructor.Event.INSERTED); + this._popper = new Popper__default['default'](this.element, tip, this._getPopperConfig(attachment)); + $__default['default'](tip).addClass(CLASS_NAME_SHOW$4); // If this is a touch-enabled device we add extra // empty mouseover listeners to the body's immediate children; // only needed because of broken event delegation on iOS // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html if ('ontouchstart' in document.documentElement) { - $(document.body).children().on('mouseover', null, $.noop); + $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop); } var complete = function complete() { @@ -3001,16 +3008,16 @@ var prevHoverState = _this._hoverState; _this._hoverState = null; - $(_this.element).trigger(_this.constructor.Event.SHOWN); + $__default['default'](_this.element).trigger(_this.constructor.Event.SHOWN); if (prevHoverState === HOVER_STATE_OUT) { _this._leave(null, _this); } }; - if ($(this.tip).hasClass(CLASS_NAME_FADE$2)) { + if ($__default['default'](this.tip).hasClass(CLASS_NAME_FADE$2)) { var transitionDuration = Util.getTransitionDurationFromElement(this.tip); - $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + $__default['default'](this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); } else { complete(); } @@ -3021,7 +3028,7 @@ var _this2 = this; var tip = this.getTipElement(); - var hideEvent = $.Event(this.constructor.Event.HIDE); + var hideEvent = $__default['default'].Event(this.constructor.Event.HIDE); var complete = function complete() { if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) { @@ -3032,7 +3039,7 @@ _this2.element.removeAttribute('aria-describedby'); - $(_this2.element).trigger(_this2.constructor.Event.HIDDEN); + $__default['default'](_this2.element).trigger(_this2.constructor.Event.HIDDEN); if (_this2._popper !== null) { _this2._popper.destroy(); @@ -3043,26 +3050,26 @@ } }; - $(this.element).trigger(hideEvent); + $__default['default'](this.element).trigger(hideEvent); if (hideEvent.isDefaultPrevented()) { return; } - $(tip).removeClass(CLASS_NAME_SHOW$4); // If this is a touch-enabled device we remove the extra + $__default['default'](tip).removeClass(CLASS_NAME_SHOW$4); // If this is a touch-enabled device we remove the extra // empty mouseover listeners we added for iOS support if ('ontouchstart' in document.documentElement) { - $(document.body).children().off('mouseover', null, $.noop); + $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop); } this._activeTrigger[TRIGGER_CLICK] = false; this._activeTrigger[TRIGGER_FOCUS] = false; this._activeTrigger[TRIGGER_HOVER] = false; - if ($(this.tip).hasClass(CLASS_NAME_FADE$2)) { + if ($__default['default'](this.tip).hasClass(CLASS_NAME_FADE$2)) { var transitionDuration = Util.getTransitionDurationFromElement(tip); - $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + $__default['default'](tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); } else { complete(); } @@ -3082,29 +3089,29 @@ }; _proto.addAttachmentClass = function addAttachmentClass(attachment) { - $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment); + $__default['default'](this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment); }; _proto.getTipElement = function getTipElement() { - this.tip = this.tip || $(this.config.template)[0]; + this.tip = this.tip || $__default['default'](this.config.template)[0]; return this.tip; }; _proto.setContent = function setContent() { var tip = this.getTipElement(); - this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle()); - $(tip).removeClass(CLASS_NAME_FADE$2 + " " + CLASS_NAME_SHOW$4); + this.setElementContent($__default['default'](tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle()); + $__default['default'](tip).removeClass(CLASS_NAME_FADE$2 + " " + CLASS_NAME_SHOW$4); }; _proto.setElementContent = function setElementContent($element, content) { if (typeof content === 'object' && (content.nodeType || content.jquery)) { // Content is a DOM node or a jQuery if (this.config.html) { - if (!$(content).parent().is($element)) { + if (!$__default['default'](content).parent().is($element)) { $element.empty().append(content); } } else { - $element.text($(content).text()); + $element.text($__default['default'](content).text()); } return; @@ -3184,10 +3191,10 @@ } if (Util.isElement(this.config.container)) { - return $(this.config.container); + return $__default['default'](this.config.container); } - return $(document).find(this.config.container); + return $__default['default'](document).find(this.config.container); }; _proto._getAttachment = function _getAttachment(placement) { @@ -3200,13 +3207,13 @@ var triggers = this.config.trigger.split(' '); triggers.forEach(function (trigger) { if (trigger === 'click') { - $(_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) { + $__default['default'](_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) { return _this5.toggle(event); }); } else if (trigger !== TRIGGER_MANUAL) { var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN; var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT; - $(_this5.element).on(eventIn, _this5.config.selector, function (event) { + $__default['default'](_this5.element).on(eventIn, _this5.config.selector, function (event) { return _this5._enter(event); }).on(eventOut, _this5.config.selector, function (event) { return _this5._leave(event); @@ -3220,7 +3227,7 @@ } }; - $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler); + $__default['default'](this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler); if (this.config.selector) { this.config = _extends({}, this.config, { @@ -3243,18 +3250,18 @@ _proto._enter = function _enter(event, context) { var dataKey = this.constructor.DATA_KEY; - context = context || $(event.currentTarget).data(dataKey); + context = context || $__default['default'](event.currentTarget).data(dataKey); if (!context) { context = new this.constructor(event.currentTarget, this._getDelegateConfig()); - $(event.currentTarget).data(dataKey, context); + $__default['default'](event.currentTarget).data(dataKey, context); } if (event) { context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; } - if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW$4) || context._hoverState === HOVER_STATE_SHOW) { + if ($__default['default'](context.getTipElement()).hasClass(CLASS_NAME_SHOW$4) || context._hoverState === HOVER_STATE_SHOW) { context._hoverState = HOVER_STATE_SHOW; return; } @@ -3276,11 +3283,11 @@ _proto._leave = function _leave(event, context) { var dataKey = this.constructor.DATA_KEY; - context = context || $(event.currentTarget).data(dataKey); + context = context || $__default['default'](event.currentTarget).data(dataKey); if (!context) { context = new this.constructor(event.currentTarget, this._getDelegateConfig()); - $(event.currentTarget).data(dataKey, context); + $__default['default'](event.currentTarget).data(dataKey, context); } if (event) { @@ -3317,7 +3324,7 @@ }; _proto._getConfig = function _getConfig(config) { - var dataAttributes = $(this.element).data(); + var dataAttributes = $__default['default'](this.element).data(); Object.keys(dataAttributes).forEach(function (dataAttr) { if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) { delete dataAttributes[dataAttr]; @@ -3364,7 +3371,7 @@ }; _proto._cleanTipClass = function _cleanTipClass() { - var $tip = $(this.getTipElement()); + var $tip = $__default['default'](this.getTipElement()); var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX); if (tabClass !== null && tabClass.length) { @@ -3388,7 +3395,7 @@ return; } - $(tip).removeClass(CLASS_NAME_FADE$2); + $__default['default'](tip).removeClass(CLASS_NAME_FADE$2); this.config.animation = false; this.hide(); this.show(); @@ -3398,7 +3405,8 @@ Tooltip._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var data = $(this).data(DATA_KEY$6); + var $element = $__default['default'](this); + var data = $element.data(DATA_KEY$6); var _config = typeof config === 'object' && config; @@ -3408,7 +3416,7 @@ if (!data) { data = new Tooltip(this, _config); - $(this).data(DATA_KEY$6, data); + $element.data(DATA_KEY$6, data); } if (typeof config === 'string') { @@ -3467,11 +3475,11 @@ */ - $.fn[NAME$6] = Tooltip._jQueryInterface; - $.fn[NAME$6].Constructor = Tooltip; + $__default['default'].fn[NAME$6] = Tooltip._jQueryInterface; + $__default['default'].fn[NAME$6].Constructor = Tooltip; - $.fn[NAME$6].noConflict = function () { - $.fn[NAME$6] = JQUERY_NO_CONFLICT$6; + $__default['default'].fn[NAME$6].noConflict = function () { + $__default['default'].fn[NAME$6] = JQUERY_NO_CONFLICT$6; return Tooltip._jQueryInterface; }; @@ -3482,10 +3490,10 @@ */ var NAME$7 = 'popover'; - var VERSION$7 = '4.5.2'; + var VERSION$7 = '4.5.3'; var DATA_KEY$7 = 'bs.popover'; var EVENT_KEY$7 = "." + DATA_KEY$7; - var JQUERY_NO_CONFLICT$7 = $.fn[NAME$7]; + var JQUERY_NO_CONFLICT$7 = $__default['default'].fn[NAME$7]; var CLASS_PREFIX$1 = 'bs-popover'; var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g'); @@ -3537,16 +3545,16 @@ }; _proto.addAttachmentClass = function addAttachmentClass(attachment) { - $(this.getTipElement()).addClass(CLASS_PREFIX$1 + "-" + attachment); + $__default['default'](this.getTipElement()).addClass(CLASS_PREFIX$1 + "-" + attachment); }; _proto.getTipElement = function getTipElement() { - this.tip = this.tip || $(this.config.template)[0]; + this.tip = this.tip || $__default['default'](this.config.template)[0]; return this.tip; }; _proto.setContent = function setContent() { - var $tip = $(this.getTipElement()); // We use append for html objects to maintain js events + var $tip = $__default['default'](this.getTipElement()); // We use append for html objects to maintain js events this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle()); @@ -3566,7 +3574,7 @@ }; _proto._cleanTipClass = function _cleanTipClass() { - var $tip = $(this.getTipElement()); + var $tip = $__default['default'](this.getTipElement()); var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1); if (tabClass !== null && tabClass.length > 0) { @@ -3577,7 +3585,7 @@ Popover._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var data = $(this).data(DATA_KEY$7); + var data = $__default['default'](this).data(DATA_KEY$7); var _config = typeof config === 'object' ? config : null; @@ -3587,7 +3595,7 @@ if (!data) { data = new Popover(this, _config); - $(this).data(DATA_KEY$7, data); + $__default['default'](this).data(DATA_KEY$7, data); } if (typeof config === 'string') { @@ -3647,11 +3655,11 @@ */ - $.fn[NAME$7] = Popover._jQueryInterface; - $.fn[NAME$7].Constructor = Popover; + $__default['default'].fn[NAME$7] = Popover._jQueryInterface; + $__default['default'].fn[NAME$7].Constructor = Popover; - $.fn[NAME$7].noConflict = function () { - $.fn[NAME$7] = JQUERY_NO_CONFLICT$7; + $__default['default'].fn[NAME$7].noConflict = function () { + $__default['default'].fn[NAME$7] = JQUERY_NO_CONFLICT$7; return Popover._jQueryInterface; }; @@ -3662,11 +3670,11 @@ */ var NAME$8 = 'scrollspy'; - var VERSION$8 = '4.5.2'; + var VERSION$8 = '4.5.3'; var DATA_KEY$8 = 'bs.scrollspy'; var EVENT_KEY$8 = "." + DATA_KEY$8; var DATA_API_KEY$6 = '.data-api'; - var JQUERY_NO_CONFLICT$8 = $.fn[NAME$8]; + var JQUERY_NO_CONFLICT$8 = $__default['default'].fn[NAME$8]; var Default$6 = { offset: 10, method: 'auto', @@ -3710,7 +3718,7 @@ this._targets = []; this._activeTarget = null; this._scrollHeight = 0; - $(this._scrollElement).on(EVENT_SCROLL, function (event) { + $__default['default'](this._scrollElement).on(EVENT_SCROLL, function (event) { return _this._process(event); }); this.refresh(); @@ -3745,7 +3753,7 @@ if (targetBCR.width || targetBCR.height) { // TODO (fat): remove sketch reliance on jQuery position/offset - return [$(target)[offsetMethod]().top + offsetBase, targetSelector]; + return [$__default['default'](target)[offsetMethod]().top + offsetBase, targetSelector]; } } @@ -3762,8 +3770,8 @@ }; _proto.dispose = function dispose() { - $.removeData(this._element, DATA_KEY$8); - $(this._scrollElement).off(EVENT_KEY$8); + $__default['default'].removeData(this._element, DATA_KEY$8); + $__default['default'](this._scrollElement).off(EVENT_KEY$8); this._element = null; this._scrollElement = null; this._config = null; @@ -3779,11 +3787,11 @@ config = _extends({}, Default$6, typeof config === 'object' && config ? config : {}); if (typeof config.target !== 'string' && Util.isElement(config.target)) { - var id = $(config.target).attr('id'); + var id = $__default['default'](config.target).attr('id'); if (!id) { id = Util.getUID(NAME$8); - $(config.target).attr('id', id); + $__default['default'](config.target).attr('id', id); } config.target = "#" + id; @@ -3852,7 +3860,7 @@ return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]"; }); - var $link = $([].slice.call(document.querySelectorAll(queries.join(',')))); + var $link = $__default['default']([].slice.call(document.querySelectorAll(queries.join(',')))); if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) { $link.closest(SELECTOR_DROPDOWN).find(SELECTOR_DROPDOWN_TOGGLE).addClass(CLASS_NAME_ACTIVE$2); @@ -3867,7 +3875,7 @@ $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_ITEMS).children(SELECTOR_NAV_LINKS).addClass(CLASS_NAME_ACTIVE$2); } - $(this._scrollElement).trigger(EVENT_ACTIVATE, { + $__default['default'](this._scrollElement).trigger(EVENT_ACTIVATE, { relatedTarget: target }); }; @@ -3883,13 +3891,13 @@ ScrollSpy._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var data = $(this).data(DATA_KEY$8); + var data = $__default['default'](this).data(DATA_KEY$8); var _config = typeof config === 'object' && config; if (!data) { data = new ScrollSpy(this, _config); - $(this).data(DATA_KEY$8, data); + $__default['default'](this).data(DATA_KEY$8, data); } if (typeof config === 'string') { @@ -3923,12 +3931,12 @@ */ - $(window).on(EVENT_LOAD_DATA_API$2, function () { + $__default['default'](window).on(EVENT_LOAD_DATA_API$2, function () { var scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY)); var scrollSpysLength = scrollSpys.length; for (var i = scrollSpysLength; i--;) { - var $spy = $(scrollSpys[i]); + var $spy = $__default['default'](scrollSpys[i]); ScrollSpy._jQueryInterface.call($spy, $spy.data()); } @@ -3939,11 +3947,11 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME$8] = ScrollSpy._jQueryInterface; - $.fn[NAME$8].Constructor = ScrollSpy; + $__default['default'].fn[NAME$8] = ScrollSpy._jQueryInterface; + $__default['default'].fn[NAME$8].Constructor = ScrollSpy; - $.fn[NAME$8].noConflict = function () { - $.fn[NAME$8] = JQUERY_NO_CONFLICT$8; + $__default['default'].fn[NAME$8].noConflict = function () { + $__default['default'].fn[NAME$8] = JQUERY_NO_CONFLICT$8; return ScrollSpy._jQueryInterface; }; @@ -3954,11 +3962,11 @@ */ var NAME$9 = 'tab'; - var VERSION$9 = '4.5.2'; + var VERSION$9 = '4.5.3'; var DATA_KEY$9 = 'bs.tab'; var EVENT_KEY$9 = "." + DATA_KEY$9; var DATA_API_KEY$7 = '.data-api'; - var JQUERY_NO_CONFLICT$9 = $.fn[NAME$9]; + var JQUERY_NO_CONFLICT$9 = $__default['default'].fn[NAME$9]; var EVENT_HIDE$3 = "hide" + EVENT_KEY$9; var EVENT_HIDDEN$3 = "hidden" + EVENT_KEY$9; var EVENT_SHOW$3 = "show" + EVENT_KEY$9; @@ -3994,33 +4002,33 @@ _proto.show = function show() { var _this = this; - if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(CLASS_NAME_ACTIVE$3) || $(this._element).hasClass(CLASS_NAME_DISABLED$1)) { + if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $__default['default'](this._element).hasClass(CLASS_NAME_ACTIVE$3) || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED$1)) { return; } var target; var previous; - var listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP$1)[0]; + var listElement = $__default['default'](this._element).closest(SELECTOR_NAV_LIST_GROUP$1)[0]; var selector = Util.getSelectorFromElement(this._element); if (listElement) { var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE$2; - previous = $.makeArray($(listElement).find(itemSelector)); + previous = $__default['default'].makeArray($__default['default'](listElement).find(itemSelector)); previous = previous[previous.length - 1]; } - var hideEvent = $.Event(EVENT_HIDE$3, { + var hideEvent = $__default['default'].Event(EVENT_HIDE$3, { relatedTarget: this._element }); - var showEvent = $.Event(EVENT_SHOW$3, { + var showEvent = $__default['default'].Event(EVENT_SHOW$3, { relatedTarget: previous }); if (previous) { - $(previous).trigger(hideEvent); + $__default['default'](previous).trigger(hideEvent); } - $(this._element).trigger(showEvent); + $__default['default'](this._element).trigger(showEvent); if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) { return; @@ -4033,14 +4041,14 @@ this._activate(this._element, listElement); var complete = function complete() { - var hiddenEvent = $.Event(EVENT_HIDDEN$3, { + var hiddenEvent = $__default['default'].Event(EVENT_HIDDEN$3, { relatedTarget: _this._element }); - var shownEvent = $.Event(EVENT_SHOWN$3, { + var shownEvent = $__default['default'].Event(EVENT_SHOWN$3, { relatedTarget: previous }); - $(previous).trigger(hiddenEvent); - $(_this._element).trigger(shownEvent); + $__default['default'](previous).trigger(hiddenEvent); + $__default['default'](_this._element).trigger(shownEvent); }; if (target) { @@ -4051,7 +4059,7 @@ }; _proto.dispose = function dispose() { - $.removeData(this._element, DATA_KEY$9); + $__default['default'].removeData(this._element, DATA_KEY$9); this._element = null; } // Private ; @@ -4059,9 +4067,9 @@ _proto._activate = function _activate(element, container, callback) { var _this2 = this; - var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $(container).find(SELECTOR_ACTIVE_UL) : $(container).children(SELECTOR_ACTIVE$2); + var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $__default['default'](container).find(SELECTOR_ACTIVE_UL) : $__default['default'](container).children(SELECTOR_ACTIVE$2); var active = activeElements[0]; - var isTransitioning = callback && active && $(active).hasClass(CLASS_NAME_FADE$4); + var isTransitioning = callback && active && $__default['default'](active).hasClass(CLASS_NAME_FADE$4); var complete = function complete() { return _this2._transitionComplete(element, active, callback); @@ -4069,7 +4077,7 @@ if (active && isTransitioning) { var transitionDuration = Util.getTransitionDurationFromElement(active); - $(active).removeClass(CLASS_NAME_SHOW$6).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + $__default['default'](active).removeClass(CLASS_NAME_SHOW$6).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); } else { complete(); } @@ -4077,11 +4085,11 @@ _proto._transitionComplete = function _transitionComplete(element, active, callback) { if (active) { - $(active).removeClass(CLASS_NAME_ACTIVE$3); - var dropdownChild = $(active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0]; + $__default['default'](active).removeClass(CLASS_NAME_ACTIVE$3); + var dropdownChild = $__default['default'](active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0]; if (dropdownChild) { - $(dropdownChild).removeClass(CLASS_NAME_ACTIVE$3); + $__default['default'](dropdownChild).removeClass(CLASS_NAME_ACTIVE$3); } if (active.getAttribute('role') === 'tab') { @@ -4089,7 +4097,7 @@ } } - $(element).addClass(CLASS_NAME_ACTIVE$3); + $__default['default'](element).addClass(CLASS_NAME_ACTIVE$3); if (element.getAttribute('role') === 'tab') { element.setAttribute('aria-selected', true); @@ -4101,12 +4109,12 @@ element.classList.add(CLASS_NAME_SHOW$6); } - if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) { - var dropdownElement = $(element).closest(SELECTOR_DROPDOWN$1)[0]; + if (element.parentNode && $__default['default'](element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) { + var dropdownElement = $__default['default'](element).closest(SELECTOR_DROPDOWN$1)[0]; if (dropdownElement) { var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE$1)); - $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE$3); + $__default['default'](dropdownToggleList).addClass(CLASS_NAME_ACTIVE$3); } element.setAttribute('aria-expanded', true); @@ -4120,7 +4128,7 @@ Tab._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var $this = $(this); + var $this = $__default['default'](this); var data = $this.data(DATA_KEY$9); if (!data) { @@ -4154,10 +4162,10 @@ */ - $(document).on(EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$4, function (event) { + $__default['default'](document).on(EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$4, function (event) { event.preventDefault(); - Tab._jQueryInterface.call($(this), 'show'); + Tab._jQueryInterface.call($__default['default'](this), 'show'); }); /** * ------------------------------------------------------------------------ @@ -4165,11 +4173,11 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME$9] = Tab._jQueryInterface; - $.fn[NAME$9].Constructor = Tab; + $__default['default'].fn[NAME$9] = Tab._jQueryInterface; + $__default['default'].fn[NAME$9].Constructor = Tab; - $.fn[NAME$9].noConflict = function () { - $.fn[NAME$9] = JQUERY_NO_CONFLICT$9; + $__default['default'].fn[NAME$9].noConflict = function () { + $__default['default'].fn[NAME$9] = JQUERY_NO_CONFLICT$9; return Tab._jQueryInterface; }; @@ -4180,10 +4188,10 @@ */ var NAME$a = 'toast'; - var VERSION$a = '4.5.2'; + var VERSION$a = '4.5.3'; var DATA_KEY$a = 'bs.toast'; var EVENT_KEY$a = "." + DATA_KEY$a; - var JQUERY_NO_CONFLICT$a = $.fn[NAME$a]; + var JQUERY_NO_CONFLICT$a = $__default['default'].fn[NAME$a]; var EVENT_CLICK_DISMISS$1 = "click.dismiss" + EVENT_KEY$a; var EVENT_HIDE$4 = "hide" + EVENT_KEY$a; var EVENT_HIDDEN$4 = "hidden" + EVENT_KEY$a; @@ -4226,8 +4234,8 @@ _proto.show = function show() { var _this = this; - var showEvent = $.Event(EVENT_SHOW$4); - $(this._element).trigger(showEvent); + var showEvent = $__default['default'].Event(EVENT_SHOW$4); + $__default['default'](this._element).trigger(showEvent); if (showEvent.isDefaultPrevented()) { return; @@ -4244,7 +4252,7 @@ _this._element.classList.add(CLASS_NAME_SHOW$7); - $(_this._element).trigger(EVENT_SHOWN$4); + $__default['default'](_this._element).trigger(EVENT_SHOWN$4); if (_this._config.autohide) { _this._timeout = setTimeout(function () { @@ -4261,7 +4269,7 @@ if (this._config.animation) { var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); } else { complete(); } @@ -4272,8 +4280,8 @@ return; } - var hideEvent = $.Event(EVENT_HIDE$4); - $(this._element).trigger(hideEvent); + var hideEvent = $__default['default'].Event(EVENT_HIDE$4); + $__default['default'](this._element).trigger(hideEvent); if (hideEvent.isDefaultPrevented()) { return; @@ -4289,15 +4297,15 @@ this._element.classList.remove(CLASS_NAME_SHOW$7); } - $(this._element).off(EVENT_CLICK_DISMISS$1); - $.removeData(this._element, DATA_KEY$a); + $__default['default'](this._element).off(EVENT_CLICK_DISMISS$1); + $__default['default'].removeData(this._element, DATA_KEY$a); this._element = null; this._config = null; } // Private ; _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default$7, $(this._element).data(), typeof config === 'object' && config ? config : {}); + config = _extends({}, Default$7, $__default['default'](this._element).data(), typeof config === 'object' && config ? config : {}); Util.typeCheckConfig(NAME$a, config, this.constructor.DefaultType); return config; }; @@ -4305,7 +4313,7 @@ _proto._setListeners = function _setListeners() { var _this2 = this; - $(this._element).on(EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function () { + $__default['default'](this._element).on(EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function () { return _this2.hide(); }); }; @@ -4316,14 +4324,14 @@ var complete = function complete() { _this3._element.classList.add(CLASS_NAME_HIDE); - $(_this3._element).trigger(EVENT_HIDDEN$4); + $__default['default'](_this3._element).trigger(EVENT_HIDDEN$4); }; this._element.classList.remove(CLASS_NAME_SHOW$7); if (this._config.animation) { var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); } else { complete(); } @@ -4337,7 +4345,7 @@ Toast._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var $element = $(this); + var $element = $__default['default'](this); var data = $element.data(DATA_KEY$a); var _config = typeof config === 'object' && config; @@ -4383,11 +4391,11 @@ */ - $.fn[NAME$a] = Toast._jQueryInterface; - $.fn[NAME$a].Constructor = Toast; + $__default['default'].fn[NAME$a] = Toast._jQueryInterface; + $__default['default'].fn[NAME$a].Constructor = Toast; - $.fn[NAME$a].noConflict = function () { - $.fn[NAME$a] = JQUERY_NO_CONFLICT$a; + $__default['default'].fn[NAME$a].noConflict = function () { + $__default['default'].fn[NAME$a] = JQUERY_NO_CONFLICT$a; return Toast._jQueryInterface; }; diff --git a/npm_assets/node_modules/bootstrap/dist/js/bootstrap.js.map b/npm_assets/node_modules/bootstrap/dist/js/bootstrap.js.map index 6601fa2f96..3fb136f513 100644 --- a/npm_assets/node_modules/bootstrap/dist/js/bootstrap.js.map +++ b/npm_assets/node_modules/bootstrap/dist/js/bootstrap.js.map @@ -1 +1 @@ -{"version":3,"file":"bootstrap.js","sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tools/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(CLASS_NAME_SHOW)\n\n if (!$(element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(EVENT_CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n EVENT_CLICK_DATA_API,\n SELECTOR_DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]'\nconst SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n SELECTOR_DATA_TOGGLES\n )[0]\n\n if (rootElement) {\n const input = this._element.querySelector(SELECTOR_INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(SELECTOR_ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n }\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => {\n let button = event.target\n const initialButton = button\n\n if (!$(button).hasClass(CLASS_NAME_BUTTON)) {\n button = $(button).closest(SELECTOR_BUTTON)[0]\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault() // work around Firefox bug #1540995\n } else {\n const inputBtn = button.querySelector(SELECTOR_INPUT)\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault() // work around Firefox bug #1540995\n return\n }\n\n if (initialButton.tagName !== 'LABEL' || inputBtn && inputBtn.type !== 'checkbox') {\n Button._jQueryInterface.call($(button), 'toggle')\n }\n }\n })\n .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(SELECTOR_BUTTON)[0]\n $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n // ensure correct active class is set to match the controls' actual values/states\n\n // find all checkboxes/readio buttons inside data-toggle groups\n let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n const input = button.querySelector(SELECTOR_INPUT)\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // find all button toggles\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n if (button.getAttribute('aria-pressed') === 'true') {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true,\n touch : true\n}\n\nconst DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean',\n touch : 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH : 'touch',\n PEN : 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? DIRECTION_NEXT\n : DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element).on(EVENT_KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(EVENT_MOUSEENTER, (event) => this.pause(event))\n .on(EVENT_MOUSELEAVE, (event) => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = (event) => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n .on(EVENT_DRAG_START, (e) => e.preventDefault())\n\n if (this._pointerEvent) {\n $(this._element).on(EVENT_POINTERDOWN, (event) => start(event))\n $(this._element).on(EVENT_POINTERUP, (event) => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n $(this._element).on(EVENT_TOUCHSTART, (event) => start(event))\n $(this._element).on(EVENT_TOUCHMOVE, (event) => move(event))\n $(this._element).on(EVENT_TOUCHEND, (event) => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode\n ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM))\n : []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM))\n const slideEvent = $.Event(EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(CLASS_NAME_ACTIVE)\n\n $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n $(nextElement).addClass(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle : true,\n parent : ''\n}\n\nconst DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst DIMENSION_WIDTH = 'width'\nconst DIMENSION_HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter((foundElem) => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))\n .filter((elem) => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(EVENT_SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSE)\n .addClass(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = $.Event(EVENT_HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(CLASS_NAME_COLLAPSING)\n .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n $(trigger).addClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(CLASS_NAME_COLLAPSE)\n .trigger(EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(DIMENSION_WIDTH)\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n const children = [].slice.call(parent.querySelectorAll(selector))\n\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic',\n popperConfig : null\n}\n\nconst DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string',\n popperConfig : '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show(true)\n }\n\n show(usePopper = false) {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(EVENT_SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(CLASS_NAME_POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(EVENT_CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU)\n }\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT)\n ? PLACEMENT_TOPEND\n : PLACEMENT_TOP\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n $(dropdownMenu).removeClass(CLASS_NAME_SHOW)\n $(parent)\n .removeClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(CLASS_NAME_SHOW)\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))\n .filter((item) => $(item).is(':visible'))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)\n .on(`${EVENT_CLICK_DATA_API} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n}\n\nconst DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(SELECTOR_DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {\n $(this._element).one(EVENT_MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(EVENT_FOCUSIN)\n\n $(this._element).removeClass(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach((htmlElement) => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n $(document).off(EVENT_FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.defaultPrevented) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n $(this._element).off(Util.TRANSITION_END)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n .emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\n }\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, (event) => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(EVENT_RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(CLASS_NAME_FADE)\n ? CLASS_NAME_FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(EVENT_CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(EVENT_SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(EVENT_HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nfunction allowedAttribute(attr, allowedAttributeList) {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].slice.call(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].slice.call(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach((attr) => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string|function)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)',\n sanitize : 'boolean',\n sanitizeFn : '(null|function)',\n whiteList : 'object',\n popperConfig : '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n}\n\nconst Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent',\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist,\n popperConfig : null\n}\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_ARROW = '.arrow'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const shadowRoot = Util.findShadowRoot(this.element)\n const isInTheDom = $.contains(\n shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n $(tip).addClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n $element.html(content)\n } else {\n $element.text(content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: SELECTOR_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (Util.isElement(this.config.container)) {\n return $(this.config.container)\n }\n\n return $(document).find(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(eventIn, this.config.selector, (event) => this._enter(event))\n .on(eventOut, this.config.selector, (event) => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = $(this.element).data()\n\n Object.keys(dataAttributes)\n .forEach((dataAttr) => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(SELECTOR_CONTENT), content)\n\n $tip.removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset : 10,\n method : 'auto',\n target : ''\n}\n\nconst DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(EVENT_SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? METHOD_OFFSET : METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map((selector) => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN)\n .find(SELECTOR_DROPDOWN_TOGGLE)\n .addClass(CLASS_NAME_ACTIVE)\n $link.addClass(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .addClass(CLASS_NAME_ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(SELECTOR_NAV_ITEMS)\n .children(SELECTOR_NAV_LINKS)\n .addClass(CLASS_NAME_ACTIVE)\n }\n\n $(this._scrollElement).trigger(EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n [].slice.call(document.querySelectorAll(this._selector))\n .filter((node) => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach((node) => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY))\n const scrollSpysLength = scrollSpys.length\n\n for (let i = scrollSpysLength; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = ScrollSpy._jQueryInterface\n$.fn[NAME].Constructor = ScrollSpy\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = '> li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(CLASS_NAME_ACTIVE) ||\n $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(EVENT_HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL')\n ? $(container).find(SELECTOR_ACTIVE_UL)\n : $(container).children(SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && $(active).hasClass(CLASS_NAME_FADE))\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .removeClass(CLASS_NAME_SHOW)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(CLASS_NAME_ACTIVE)\n\n const dropdownChild = $(active.parentNode).find(\n SELECTOR_DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(SELECTOR_DROPDOWN)[0]\n\n if (dropdownElement) {\n const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE))\n\n $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tab._jQueryInterface\n$.fn[NAME].Constructor = Tab\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation : 'boolean',\n autohide : 'boolean',\n delay : 'number'\n}\n\nconst Default = {\n animation : true,\n autohide : true,\n delay : 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = $.Event(EVENT_SHOW)\n\n $(this._element).trigger(showEvent)\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n $(this._element).trigger(EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n Util.reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._close()\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n\n $.removeData(this._element, DATA_KEY)\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...$(this._element).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE)\n $(this._element).trigger(EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Toast._jQueryInterface\n$.fn[NAME].Constructor = Toast\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n}\n\nexport default Toast\n"],"names":["TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","bindType","delegateType","handle","event","$","target","is","handleObj","handler","apply","arguments","undefined","transitionEndEmulator","duration","called","one","Util","setTimeout","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","special","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","err","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","jquery","minMajor","ltMajor","minMinor","minPatch","maxMajor","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASS_NAME_ALERT","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","Event","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","CLASS_NAME_ACTIVE","CLASS_NAME_BUTTON","CLASS_NAME_FOCUS","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLES","SELECTOR_DATA_TOGGLE","SELECTOR_DATA_TOGGLES_BUTTONS","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","EVENT_FOCUS_BLUR_DATA_API","EVENT_LOAD_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","classList","contains","activeElement","focus","hasAttribute","setAttribute","toggleClass","button","initialButton","inputBtn","tagName","window","buttons","slice","querySelectorAll","i","len","length","add","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","CLASS_NAME_CAROUSEL","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","originalEvent","pointerType","clientX","touches","move","end","clearTimeout","e","which","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slidEvent","nextElementInterval","parseInt","defaultInterval","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","DIMENSION_WIDTH","DIMENSION_HEIGHT","SELECTOR_ACTIVES","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","complete","capitalizedDimension","scrollSize","getBoundingClientRect","triggerArrayLength","$elem","isTransitioning","hasWidth","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","selectors","$target","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_POSITION_STATIC","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","offset","flip","boundary","reference","display","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","Popper","referenceElement","_getPopperConfig","body","noop","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","item","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","forEach","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","defaultPrevented","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","modalBody","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","rect","round","left","right","innerWidth","_getScrollbarWidth","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","uriAttrs","ARIA_ATTRIBUTE_PATTERN","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","keys","el","elName","attributeList","attributes","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","container","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HOVER_STATE_SHOW","HOVER_STATE_OUT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","SELECTOR_TOOLTIP_INNER","SELECTOR_ARROW","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","empty","append","text","defaultBsConfig","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","find","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","key","$tip","tabClass","join","popperData","instance","popper","initConfigAnimation","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_ITEMS","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","parents","node","scrollSpys","scrollSpysLength","$spy","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","previous","listElement","itemSelector","makeArray","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_clearTimeout","_close"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"bootstrap.js","sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tools/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n\n return undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (_) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value) ?\n 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(CLASS_NAME_SHOW)\n\n if (!$(element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, event => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(EVENT_CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n EVENT_CLICK_DATA_API,\n SELECTOR_DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]'\nconst SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n this.shouldAvoidTriggerChange = false\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(SELECTOR_DATA_TOGGLES)[0]\n\n if (rootElement) {\n const input = this._element.querySelector(SELECTOR_INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(SELECTOR_ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n if (!this.shouldAvoidTriggerChange) {\n $(input).trigger('change')\n }\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config, avoidTriggerChange) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $element.data(DATA_KEY, data)\n }\n\n data.shouldAvoidTriggerChange = avoidTriggerChange\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n let button = event.target\n const initialButton = button\n\n if (!$(button).hasClass(CLASS_NAME_BUTTON)) {\n button = $(button).closest(SELECTOR_BUTTON)[0]\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault() // work around Firefox bug #1540995\n } else {\n const inputBtn = button.querySelector(SELECTOR_INPUT)\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault() // work around Firefox bug #1540995\n return\n }\n\n if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n Button._jQueryInterface.call($(button), 'toggle', initialButton.tagName === 'INPUT')\n }\n }\n })\n .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = $(event.target).closest(SELECTOR_BUTTON)[0]\n $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n // ensure correct active class is set to match the controls' actual values/states\n\n // find all checkboxes/readio buttons inside data-toggle groups\n let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n const input = button.querySelector(SELECTOR_INPUT)\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // find all button toggles\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n if (button.getAttribute('aria-pressed') === 'true') {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n const $element = $(this._element)\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($element.is(':visible') && $element.css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element).on(EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(EVENT_MOUSEENTER, event => this.pause(event))\n .on(EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n .on(EVENT_DRAG_START, e => e.preventDefault())\n\n if (this._pointerEvent) {\n $(this._element).on(EVENT_POINTERDOWN, event => start(event))\n $(this._element).on(EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n $(this._element).on(EVENT_TOUCHSTART, event => start(event))\n $(this._element).on(EVENT_TOUCHMOVE, event => move(event))\n $(this._element).on(EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) :\n []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM))\n const slideEvent = $.Event(EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(CLASS_NAME_ACTIVE)\n\n $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n $(nextElement).addClass(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst DIMENSION_WIDTH = 'width'\nconst DIMENSION_HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(EVENT_SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSE)\n .addClass(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = $.Event(EVENT_HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(CLASS_NAME_COLLAPSING)\n .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n $(trigger).addClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(CLASS_NAME_COLLAPSE)\n .trigger(EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(DIMENSION_WIDTH)\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n const children = [].slice.call(parent.querySelectorAll(selector))\n\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$element.data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show(true)\n }\n\n show(usePopper = false) {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(EVENT_SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(EVENT_CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) ?\n PLACEMENT_TOPEND :\n PLACEMENT_TOP\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this._config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n $(dropdownMenu).removeClass(CLASS_NAME_SHOW)\n $(parent)\n .removeClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(CLASS_NAME_SHOW)\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (!isActive || (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))\n .filter(item => $(item).is(':visible'))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)\n .on(`${EVENT_CLICK_DATA_API} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(SELECTOR_DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n event => this.hide(event)\n )\n\n $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {\n $(this._element).one(EVENT_MOUSEUP_DISMISS, event => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(EVENT_FOCUSIN)\n\n $(this._element).removeClass(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, event => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n $(document).off(EVENT_FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.isDefaultPrevented()) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n $(this._element).off(Util.TRANSITION_END)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n .emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\n }\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(EVENT_RESIZE, event => this.handleUpdate(event))\n } else {\n $(window).off(EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY) ?\n 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(EVENT_SHOW, showEvent => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(EVENT_HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nfunction allowedAttribute(attr, allowedAttributeList) {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].slice.call(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].slice.call(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object',\n popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist,\n popperConfig: null\n}\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_ARROW = '.arrow'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const shadowRoot = Util.findShadowRoot(this.element)\n const isInTheDom = $.contains(\n shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n $(tip).addClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n $element.html(content)\n } else {\n $element.text(content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: SELECTOR_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this.config.offset(data.offsets, this.element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (Util.isElement(this.config.container)) {\n return $(this.config.container)\n }\n\n return $(document).find(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(eventIn, this.config.selector, event => this._enter(event))\n .on(eventOut, this.config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = $(this.element).data()\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent($tip.find(SELECTOR_CONTENT), content)\n\n $tip.removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(EVENT_SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET : METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod : this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN)\n .find(SELECTOR_DROPDOWN_TOGGLE)\n .addClass(CLASS_NAME_ACTIVE)\n $link.addClass(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .addClass(CLASS_NAME_ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(SELECTOR_NAV_ITEMS)\n .children(SELECTOR_NAV_LINKS)\n .addClass(CLASS_NAME_ACTIVE)\n }\n\n $(this._scrollElement).trigger(EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n [].slice.call(document.querySelectorAll(this._selector))\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY))\n const scrollSpysLength = scrollSpys.length\n\n for (let i = scrollSpysLength; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = ScrollSpy._jQueryInterface\n$.fn[NAME].Constructor = ScrollSpy\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = '> li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(CLASS_NAME_ACTIVE) ||\n $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(EVENT_HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n $(container).find(SELECTOR_ACTIVE_UL) :\n $(container).children(SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && $(active).hasClass(CLASS_NAME_FADE))\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .removeClass(CLASS_NAME_SHOW)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(CLASS_NAME_ACTIVE)\n\n const dropdownChild = $(active.parentNode).find(\n SELECTOR_DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(SELECTOR_DROPDOWN)[0]\n\n if (dropdownElement) {\n const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE))\n\n $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tab._jQueryInterface\n$.fn[NAME].Constructor = Tab\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = $.Event(EVENT_SHOW)\n\n $(this._element).trigger(showEvent)\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n $(this._element).trigger(EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n Util.reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._close()\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n\n $.removeData(this._element, DATA_KEY)\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...$(this._element).data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE)\n $(this._element).trigger(EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Toast._jQueryInterface\n$.fn[NAME].Constructor = Toast\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n}\n\nexport default Toast\n"],"names":["TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","bindType","delegateType","handle","event","$","target","is","handleObj","handler","apply","arguments","undefined","transitionEndEmulator","duration","called","one","Util","setTimeout","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","special","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","_","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","jquery","minMajor","ltMajor","minMinor","minPatch","maxMajor","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASS_NAME_ALERT","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","Event","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","CLASS_NAME_ACTIVE","CLASS_NAME_BUTTON","CLASS_NAME_FOCUS","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLES","SELECTOR_DATA_TOGGLE","SELECTOR_DATA_TOGGLES_BUTTONS","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","EVENT_FOCUS_BLUR_DATA_API","EVENT_LOAD_DATA_API","Button","shouldAvoidTriggerChange","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","classList","contains","activeElement","focus","hasAttribute","setAttribute","toggleClass","avoidTriggerChange","button","initialButton","inputBtn","tagName","window","buttons","slice","querySelectorAll","i","len","length","add","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","CLASS_NAME_CAROUSEL","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","originalEvent","pointerType","clientX","touches","move","end","clearTimeout","e","which","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slidEvent","nextElementInterval","parseInt","defaultInterval","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","DIMENSION_WIDTH","DIMENSION_HEIGHT","SELECTOR_ACTIVES","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","complete","capitalizedDimension","scrollSize","getBoundingClientRect","triggerArrayLength","$elem","isTransitioning","hasWidth","_getTargetFromElement","triggerArray","isOpen","currentTarget","$trigger","selectors","$target","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_POSITION_STATIC","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","offset","flip","boundary","reference","display","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","Popper","referenceElement","_getPopperConfig","body","noop","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","item","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","forEach","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","modalBody","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","rect","round","left","right","innerWidth","_getScrollbarWidth","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","uriAttrs","ARIA_ATTRIBUTE_PATTERN","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","keys","el","elName","attributeList","attributes","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","container","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HOVER_STATE_SHOW","HOVER_STATE_OUT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","SELECTOR_TOOLTIP_INNER","SELECTOR_ARROW","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","empty","append","text","defaultBsConfig","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","find","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","key","$tip","tabClass","join","popperData","instance","popper","initConfigAnimation","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_ITEMS","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","parents","node","scrollSpys","scrollSpysLength","$spy","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","previous","listElement","itemSelector","makeArray","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","$this","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_clearTimeout","_close"],"mappings":"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"} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/dist/js/bootstrap.min.js b/npm_assets/node_modules/bootstrap/dist/js/bootstrap.min.js index ef4d9cbd6a..cd995a6bdb 100644 --- a/npm_assets/node_modules/bootstrap/dist/js/bootstrap.min.js +++ b/npm_assets/node_modules/bootstrap/dist/js/bootstrap.min.js @@ -1,7 +1,7 @@ /*! - * Bootstrap v4.5.2 (https://getbootstrap.com/) + * Bootstrap v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap={},t.jQuery,t.Popper)}(this,(function(t,e,n){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function o(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function s(){return(s=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t}).apply(this,arguments)}e=e&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e,n=n&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n;function r(t){var n=this,i=!1;return e(this).one(a.TRANSITION_END,(function(){i=!0})),setTimeout((function(){i||a.triggerTransitionEnd(n)}),t),this}var a={TRANSITION_END:"bsTransitionEnd",getUID:function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var n=e(t).css("transition-duration"),i=e(t).css("transition-delay"),o=parseFloat(n),s=parseFloat(i);return o||s?(n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){e(t).trigger("transitionend")},supportsTransitionEnd:function(){return Boolean("transitionend")},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var o=n[i],s=e[i],r=s&&a.isElement(s)?"element":null===(l=s)||"undefined"==typeof l?""+l:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(r))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+r+'" but expected type "'+o+'".')}var l},findShadowRoot:function(t){if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){var e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?a.findShadowRoot(t.parentNode):null},jQueryDetection:function(){if("undefined"==typeof e)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||t[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};a.jQueryDetection(),e.fn.emulateTransitionEnd=r,e.event.special[a.TRANSITION_END]={bindType:"transitionend",delegateType:"transitionend",handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var l="alert",c=e.fn[l],h=function(){function t(t){this._element=t}var n=t.prototype;return n.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},n.dispose=function(){e.removeData(this._element,"bs.alert"),this._element=null},n._getRootElement=function(t){var n=a.getSelectorFromElement(t),i=!1;return n&&(i=document.querySelector(n)),i||(i=e(t).closest(".alert")[0]),i},n._triggerCloseEvent=function(t){var n=e.Event("close.bs.alert");return e(t).trigger(n),n},n._removeElement=function(t){var n=this;if(e(t).removeClass("show"),e(t).hasClass("fade")){var i=a.getTransitionDurationFromElement(t);e(t).one(a.TRANSITION_END,(function(e){return n._destroyElement(t,e)})).emulateTransitionEnd(i)}else this._destroyElement(t)},n._destroyElement=function(t){e(t).detach().trigger("closed.bs.alert").remove()},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.alert");o||(o=new t(this),i.data("bs.alert",o)),"close"===n&&o[n](this)}))},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}}]),t}();e(document).on("click.bs.alert.data-api",'[data-dismiss="alert"]',h._handleDismiss(new h)),e.fn[l]=h._jQueryInterface,e.fn[l].Constructor=h,e.fn[l].noConflict=function(){return e.fn[l]=c,h._jQueryInterface};var u=e.fn.button,d=function(){function t(t){this._element=t}var n=t.prototype;return n.toggle=function(){var t=!0,n=!0,i=e(this._element).closest('[data-toggle="buttons"]')[0];if(i){var o=this._element.querySelector('input:not([type="hidden"])');if(o){if("radio"===o.type)if(o.checked&&this._element.classList.contains("active"))t=!1;else{var s=i.querySelector(".active");s&&e(s).removeClass("active")}t&&("checkbox"!==o.type&&"radio"!==o.type||(o.checked=!this._element.classList.contains("active")),e(o).trigger("change")),o.focus(),n=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(n&&this._element.setAttribute("aria-pressed",!this._element.classList.contains("active")),t&&e(this._element).toggleClass("active"))},n.dispose=function(){e.removeData(this._element,"bs.button"),this._element=null},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.button");i||(i=new t(this),e(this).data("bs.button",i)),"toggle"===n&&i[n]()}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}}]),t}();e(document).on("click.bs.button.data-api",'[data-toggle^="button"]',(function(t){var n=t.target,i=n;if(e(n).hasClass("btn")||(n=e(n).closest(".btn")[0]),!n||n.hasAttribute("disabled")||n.classList.contains("disabled"))t.preventDefault();else{var o=n.querySelector('input:not([type="hidden"])');if(o&&(o.hasAttribute("disabled")||o.classList.contains("disabled")))return void t.preventDefault();("LABEL"!==i.tagName||o&&"checkbox"!==o.type)&&d._jQueryInterface.call(e(n),"toggle")}})).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',(function(t){var n=e(t.target).closest(".btn")[0];e(n).toggleClass("focus",/^focus(in)?$/.test(t.type))})),e(window).on("load.bs.button.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')),e=0,n=t.length;e<n;e++){var i=t[e],o=i.querySelector('input:not([type="hidden"])');o.checked||o.hasAttribute("checked")?i.classList.add("active"):i.classList.remove("active")}for(var s=0,r=(t=[].slice.call(document.querySelectorAll('[data-toggle="button"]'))).length;s<r;s++){var a=t[s];"true"===a.getAttribute("aria-pressed")?a.classList.add("active"):a.classList.remove("active")}})),e.fn.button=d._jQueryInterface,e.fn.button.Constructor=d,e.fn.button.noConflict=function(){return e.fn.button=u,d._jQueryInterface};var f="carousel",g=".bs.carousel",m=e.fn[f],p={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},_={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},v={TOUCH:"touch",PEN:"pen"},b=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=this._element.querySelector(".carousel-indicators"),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var n=t.prototype;return n.next=function(){this._isSliding||this._slide("next")},n.nextWhenVisible=function(){!document.hidden&&e(this._element).is(":visible")&&"hidden"!==e(this._element).css("visibility")&&this.next()},n.prev=function(){this._isSliding||this._slide("prev")},n.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(a.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},n.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},n.to=function(t){var n=this;this._activeElement=this._element.querySelector(".active.carousel-item");var i=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)e(this._element).one("slid.bs.carousel",(function(){return n.to(t)}));else{if(i===t)return this.pause(),void this.cycle();var o=t>i?"next":"prev";this._slide(o,this._items[t])}},n.dispose=function(){e(this._element).off(g),e.removeData(this._element,"bs.carousel"),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},n._getConfig=function(t){return t=s({},p,t),a.typeCheckConfig(f,t,_),t},n._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},n._addEventListeners=function(){var t=this;this._config.keyboard&&e(this._element).on("keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&e(this._element).on("mouseenter.bs.carousel",(function(e){return t.pause(e)})).on("mouseleave.bs.carousel",(function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},n._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var n=function(e){t._pointerEvent&&v[e.originalEvent.pointerType.toUpperCase()]?t.touchStartX=e.originalEvent.clientX:t._pointerEvent||(t.touchStartX=e.originalEvent.touches[0].clientX)},i=function(e){t._pointerEvent&&v[e.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=e.originalEvent.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};e(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel",(function(t){return t.preventDefault()})),this._pointerEvent?(e(this._element).on("pointerdown.bs.carousel",(function(t){return n(t)})),e(this._element).on("pointerup.bs.carousel",(function(t){return i(t)})),this._element.classList.add("pointer-event")):(e(this._element).on("touchstart.bs.carousel",(function(t){return n(t)})),e(this._element).on("touchmove.bs.carousel",(function(e){return function(e){e.originalEvent.touches&&e.originalEvent.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.originalEvent.touches[0].clientX-t.touchStartX}(e)})),e(this._element).on("touchend.bs.carousel",(function(t){return i(t)})))}},n._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},n._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(t)},n._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),s=this._items.length-1;if((i&&0===o||n&&o===s)&&!this._config.wrap)return e;var r=(o+("prev"===t?-1:1))%this._items.length;return-1===r?this._items[this._items.length-1]:this._items[r]},n._triggerSlideEvent=function(t,n){var i=this._getItemIndex(t),o=this._getItemIndex(this._element.querySelector(".active.carousel-item")),s=e.Event("slide.bs.carousel",{relatedTarget:t,direction:n,from:o,to:i});return e(this._element).trigger(s),s},n._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var n=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));e(n).removeClass("active");var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&e(i).addClass("active")}},n._slide=function(t,n){var i,o,s,r=this,l=this._element.querySelector(".active.carousel-item"),c=this._getItemIndex(l),h=n||l&&this._getItemByDirection(t,l),u=this._getItemIndex(h),d=Boolean(this._interval);if("next"===t?(i="carousel-item-left",o="carousel-item-next",s="left"):(i="carousel-item-right",o="carousel-item-prev",s="right"),h&&e(h).hasClass("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(h,s).isDefaultPrevented()&&l&&h){this._isSliding=!0,d&&this.pause(),this._setActiveIndicatorElement(h);var f=e.Event("slid.bs.carousel",{relatedTarget:h,direction:s,from:c,to:u});if(e(this._element).hasClass("slide")){e(h).addClass(o),a.reflow(h),e(l).addClass(i),e(h).addClass(i);var g=parseInt(h.getAttribute("data-interval"),10);g?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=g):this._config.interval=this._config.defaultInterval||this._config.interval;var m=a.getTransitionDurationFromElement(l);e(l).one(a.TRANSITION_END,(function(){e(h).removeClass(i+" "+o).addClass("active"),e(l).removeClass("active "+o+" "+i),r._isSliding=!1,setTimeout((function(){return e(r._element).trigger(f)}),0)})).emulateTransitionEnd(m)}else e(l).removeClass("active"),e(h).addClass("active"),this._isSliding=!1,e(this._element).trigger(f);d&&this.cycle()}},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.carousel"),o=s({},p,e(this).data());"object"==typeof n&&(o=s({},o,n));var r="string"==typeof n?n:o.slide;if(i||(i=new t(this,o),e(this).data("bs.carousel",i)),"number"==typeof n)i.to(n);else if("string"==typeof r){if("undefined"==typeof i[r])throw new TypeError('No method named "'+r+'"');i[r]()}else o.interval&&o.ride&&(i.pause(),i.cycle())}))},t._dataApiClickHandler=function(n){var i=a.getSelectorFromElement(this);if(i){var o=e(i)[0];if(o&&e(o).hasClass("carousel")){var r=s({},e(o).data(),e(this).data()),l=this.getAttribute("data-slide-to");l&&(r.interval=!1),t._jQueryInterface.call(e(o),r),l&&e(o).data("bs.carousel").to(l),n.preventDefault()}}},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return p}}]),t}();e(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",b._dataApiClickHandler),e(window).on("load.bs.carousel.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-ride="carousel"]')),n=0,i=t.length;n<i;n++){var o=e(t[n]);b._jQueryInterface.call(o,o.data())}})),e.fn[f]=b._jQueryInterface,e.fn[f].Constructor=b,e.fn[f].noConflict=function(){return e.fn[f]=m,b._jQueryInterface};var y="collapse",E=e.fn[y],w={toggle:!0,parent:""},T={toggle:"boolean",parent:"(string|element)"},C=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=[].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=[].slice.call(document.querySelectorAll('[data-toggle="collapse"]')),i=0,o=n.length;i<o;i++){var s=n[i],r=a.getSelectorFromElement(s),l=[].slice.call(document.querySelectorAll(r)).filter((function(e){return e===t}));null!==r&&l.length>0&&(this._selector=r,this._triggerArray.push(s))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var n=t.prototype;return n.toggle=function(){e(this._element).hasClass("show")?this.hide():this.show()},n.show=function(){var n,i,o=this;if(!this._isTransitioning&&!e(this._element).hasClass("show")&&(this._parent&&0===(n=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((function(t){return"string"==typeof o._config.parent?t.getAttribute("data-parent")===o._config.parent:t.classList.contains("collapse")}))).length&&(n=null),!(n&&(i=e(n).not(this._selector).data("bs.collapse"))&&i._isTransitioning))){var s=e.Event("show.bs.collapse");if(e(this._element).trigger(s),!s.isDefaultPrevented()){n&&(t._jQueryInterface.call(e(n).not(this._selector),"hide"),i||e(n).data("bs.collapse",null));var r=this._getDimension();e(this._element).removeClass("collapse").addClass("collapsing"),this._element.style[r]=0,this._triggerArray.length&&e(this._triggerArray).removeClass("collapsed").attr("aria-expanded",!0),this.setTransitioning(!0);var l="scroll"+(r[0].toUpperCase()+r.slice(1)),c=a.getTransitionDurationFromElement(this._element);e(this._element).one(a.TRANSITION_END,(function(){e(o._element).removeClass("collapsing").addClass("collapse show"),o._element.style[r]="",o.setTransitioning(!1),e(o._element).trigger("shown.bs.collapse")})).emulateTransitionEnd(c),this._element.style[r]=this._element[l]+"px"}}},n.hide=function(){var t=this;if(!this._isTransitioning&&e(this._element).hasClass("show")){var n=e.Event("hide.bs.collapse");if(e(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension();this._element.style[i]=this._element.getBoundingClientRect()[i]+"px",a.reflow(this._element),e(this._element).addClass("collapsing").removeClass("collapse show");var o=this._triggerArray.length;if(o>0)for(var s=0;s<o;s++){var r=this._triggerArray[s],l=a.getSelectorFromElement(r);if(null!==l)e([].slice.call(document.querySelectorAll(l))).hasClass("show")||e(r).addClass("collapsed").attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[i]="";var c=a.getTransitionDurationFromElement(this._element);e(this._element).one(a.TRANSITION_END,(function(){t.setTransitioning(!1),e(t._element).removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")})).emulateTransitionEnd(c)}}},n.setTransitioning=function(t){this._isTransitioning=t},n.dispose=function(){e.removeData(this._element,"bs.collapse"),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},n._getConfig=function(t){return(t=s({},w,t)).toggle=Boolean(t.toggle),a.typeCheckConfig(y,t,T),t},n._getDimension=function(){return e(this._element).hasClass("width")?"width":"height"},n._getParent=function(){var n,i=this;a.isElement(this._config.parent)?(n=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(n=this._config.parent[0])):n=document.querySelector(this._config.parent);var o='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',s=[].slice.call(n.querySelectorAll(o));return e(s).each((function(e,n){i._addAriaAndCollapsedClass(t._getTargetFromElement(n),[n])})),n},n._addAriaAndCollapsedClass=function(t,n){var i=e(t).hasClass("show");n.length&&e(n).toggleClass("collapsed",!i).attr("aria-expanded",i)},t._getTargetFromElement=function(t){var e=a.getSelectorFromElement(t);return e?document.querySelector(e):null},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.collapse"),r=s({},w,i.data(),"object"==typeof n&&n?n:{});if(!o&&r.toggle&&"string"==typeof n&&/show|hide/.test(n)&&(r.toggle=!1),o||(o=new t(this,r),i.data("bs.collapse",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n]()}}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return w}}]),t}();e(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',(function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var n=e(this),i=a.getSelectorFromElement(this),o=[].slice.call(document.querySelectorAll(i));e(o).each((function(){var t=e(this),i=t.data("bs.collapse")?"toggle":n.data();C._jQueryInterface.call(t,i)}))})),e.fn[y]=C._jQueryInterface,e.fn[y].Constructor=C,e.fn[y].noConflict=function(){return e.fn[y]=E,C._jQueryInterface};var S="dropdown",k=e.fn[S],D=new RegExp("38|40|27"),N={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},A={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},I=function(){function t(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var i=t.prototype;return i.toggle=function(){if(!this._element.disabled&&!e(this._element).hasClass("disabled")){var n=e(this._menu).hasClass("show");t._clearMenus(),n||this.show(!0)}},i.show=function(i){if(void 0===i&&(i=!1),!(this._element.disabled||e(this._element).hasClass("disabled")||e(this._menu).hasClass("show"))){var o={relatedTarget:this._element},s=e.Event("show.bs.dropdown",o),r=t._getParentFromElement(this._element);if(e(r).trigger(s),!s.isDefaultPrevented()){if(!this._inNavbar&&i){if("undefined"==typeof n)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");var l=this._element;"parent"===this._config.reference?l=r:a.isElement(this._config.reference)&&(l=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(l=this._config.reference[0])),"scrollParent"!==this._config.boundary&&e(r).addClass("position-static"),this._popper=new n(l,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===e(r).closest(".navbar-nav").length&&e(document.body).children().on("mouseover",null,e.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),e(this._menu).toggleClass("show"),e(r).toggleClass("show").trigger(e.Event("shown.bs.dropdown",o))}}},i.hide=function(){if(!this._element.disabled&&!e(this._element).hasClass("disabled")&&e(this._menu).hasClass("show")){var n={relatedTarget:this._element},i=e.Event("hide.bs.dropdown",n),o=t._getParentFromElement(this._element);e(o).trigger(i),i.isDefaultPrevented()||(this._popper&&this._popper.destroy(),e(this._menu).toggleClass("show"),e(o).toggleClass("show").trigger(e.Event("hidden.bs.dropdown",n)))}},i.dispose=function(){e.removeData(this._element,"bs.dropdown"),e(this._element).off(".bs.dropdown"),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},i.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},i._addEventListeners=function(){var t=this;e(this._element).on("click.bs.dropdown",(function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}))},i._getConfig=function(t){return t=s({},this.constructor.Default,e(this._element).data(),t),a.typeCheckConfig(S,t,this.constructor.DefaultType),t},i._getMenuElement=function(){if(!this._menu){var e=t._getParentFromElement(this._element);e&&(this._menu=e.querySelector(".dropdown-menu"))}return this._menu},i._getPlacement=function(){var t=e(this._element.parentNode),n="bottom-start";return t.hasClass("dropup")?n=e(this._menu).hasClass("dropdown-menu-right")?"top-end":"top-start":t.hasClass("dropright")?n="right-start":t.hasClass("dropleft")?n="left-start":e(this._menu).hasClass("dropdown-menu-right")&&(n="bottom-end"),n},i._detectNavbar=function(){return e(this._element).closest(".navbar").length>0},i._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=s({},e.offsets,t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},i._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),s({},t,this._config.popperConfig)},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.dropdown");if(i||(i=new t(this,"object"==typeof n?n:null),e(this).data("bs.dropdown",i)),"string"==typeof n){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}}))},t._clearMenus=function(n){if(!n||3!==n.which&&("keyup"!==n.type||9===n.which))for(var i=[].slice.call(document.querySelectorAll('[data-toggle="dropdown"]')),o=0,s=i.length;o<s;o++){var r=t._getParentFromElement(i[o]),a=e(i[o]).data("bs.dropdown"),l={relatedTarget:i[o]};if(n&&"click"===n.type&&(l.clickEvent=n),a){var c=a._menu;if(e(r).hasClass("show")&&!(n&&("click"===n.type&&/input|textarea/i.test(n.target.tagName)||"keyup"===n.type&&9===n.which)&&e.contains(r,n.target))){var h=e.Event("hide.bs.dropdown",l);e(r).trigger(h),h.isDefaultPrevented()||("ontouchstart"in document.documentElement&&e(document.body).children().off("mouseover",null,e.noop),i[o].setAttribute("aria-expanded","false"),a._popper&&a._popper.destroy(),e(c).removeClass("show"),e(r).removeClass("show").trigger(e.Event("hidden.bs.dropdown",l)))}}}},t._getParentFromElement=function(t){var e,n=a.getSelectorFromElement(t);return n&&(e=document.querySelector(n)),e||t.parentNode},t._dataApiKeydownHandler=function(n){if(!(/input|textarea/i.test(n.target.tagName)?32===n.which||27!==n.which&&(40!==n.which&&38!==n.which||e(n.target).closest(".dropdown-menu").length):!D.test(n.which))&&!this.disabled&&!e(this).hasClass("disabled")){var i=t._getParentFromElement(this),o=e(i).hasClass("show");if(o||27!==n.which){if(n.preventDefault(),n.stopPropagation(),!o||o&&(27===n.which||32===n.which))return 27===n.which&&e(i.querySelector('[data-toggle="dropdown"]')).trigger("focus"),void e(this).trigger("click");var s=[].slice.call(i.querySelectorAll(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)")).filter((function(t){return e(t).is(":visible")}));if(0!==s.length){var r=s.indexOf(n.target);38===n.which&&r>0&&r--,40===n.which&&r<s.length-1&&r++,r<0&&(r=0),s[r].focus()}}}},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return N}},{key:"DefaultType",get:function(){return A}}]),t}();e(document).on("keydown.bs.dropdown.data-api",'[data-toggle="dropdown"]',I._dataApiKeydownHandler).on("keydown.bs.dropdown.data-api",".dropdown-menu",I._dataApiKeydownHandler).on("click.bs.dropdown.data-api keyup.bs.dropdown.data-api",I._clearMenus).on("click.bs.dropdown.data-api",'[data-toggle="dropdown"]',(function(t){t.preventDefault(),t.stopPropagation(),I._jQueryInterface.call(e(this),"toggle")})).on("click.bs.dropdown.data-api",".dropdown form",(function(t){t.stopPropagation()})),e.fn[S]=I._jQueryInterface,e.fn[S].Constructor=I,e.fn[S].noConflict=function(){return e.fn[S]=k,I._jQueryInterface};var O=e.fn.modal,j={backdrop:!0,keyboard:!0,focus:!0,show:!0},x={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},P=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=t.querySelector(".modal-dialog"),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}var n=t.prototype;return n.toggle=function(t){return this._isShown?this.hide():this.show(t)},n.show=function(t){var n=this;if(!this._isShown&&!this._isTransitioning){e(this._element).hasClass("fade")&&(this._isTransitioning=!0);var i=e.Event("show.bs.modal",{relatedTarget:t});e(this._element).trigger(i),this._isShown||i.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),e(this._element).on("click.dismiss.bs.modal",'[data-dismiss="modal"]',(function(t){return n.hide(t)})),e(this._dialog).on("mousedown.dismiss.bs.modal",(function(){e(n._element).one("mouseup.dismiss.bs.modal",(function(t){e(t.target).is(n._element)&&(n._ignoreBackdropClick=!0)}))})),this._showBackdrop((function(){return n._showElement(t)})))}},n.hide=function(t){var n=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var i=e.Event("hide.bs.modal");if(e(this._element).trigger(i),this._isShown&&!i.isDefaultPrevented()){this._isShown=!1;var o=e(this._element).hasClass("fade");if(o&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),e(document).off("focusin.bs.modal"),e(this._element).removeClass("show"),e(this._element).off("click.dismiss.bs.modal"),e(this._dialog).off("mousedown.dismiss.bs.modal"),o){var s=a.getTransitionDurationFromElement(this._element);e(this._element).one(a.TRANSITION_END,(function(t){return n._hideModal(t)})).emulateTransitionEnd(s)}else this._hideModal()}}},n.dispose=function(){[window,this._element,this._dialog].forEach((function(t){return e(t).off(".bs.modal")})),e(document).off("focusin.bs.modal"),e.removeData(this._element,"bs.modal"),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},n.handleUpdate=function(){this._adjustDialog()},n._getConfig=function(t){return t=s({},j,t),a.typeCheckConfig("modal",t,x),t},n._triggerBackdropTransition=function(){var t=this;if("static"===this._config.backdrop){var n=e.Event("hidePrevented.bs.modal");if(e(this._element).trigger(n),n.defaultPrevented)return;var i=this._element.scrollHeight>document.documentElement.clientHeight;i||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");var o=a.getTransitionDurationFromElement(this._dialog);e(this._element).off(a.TRANSITION_END),e(this._element).one(a.TRANSITION_END,(function(){t._element.classList.remove("modal-static"),i||e(t._element).one(a.TRANSITION_END,(function(){t._element.style.overflowY=""})).emulateTransitionEnd(t._element,o)})).emulateTransitionEnd(o),this._element.focus()}else this.hide()},n._showElement=function(t){var n=this,i=e(this._element).hasClass("fade"),o=this._dialog?this._dialog.querySelector(".modal-body"):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),e(this._dialog).hasClass("modal-dialog-scrollable")&&o?o.scrollTop=0:this._element.scrollTop=0,i&&a.reflow(this._element),e(this._element).addClass("show"),this._config.focus&&this._enforceFocus();var s=e.Event("shown.bs.modal",{relatedTarget:t}),r=function(){n._config.focus&&n._element.focus(),n._isTransitioning=!1,e(n._element).trigger(s)};if(i){var l=a.getTransitionDurationFromElement(this._dialog);e(this._dialog).one(a.TRANSITION_END,r).emulateTransitionEnd(l)}else r()},n._enforceFocus=function(){var t=this;e(document).off("focusin.bs.modal").on("focusin.bs.modal",(function(n){document!==n.target&&t._element!==n.target&&0===e(t._element).has(n.target).length&&t._element.focus()}))},n._setEscapeEvent=function(){var t=this;this._isShown?e(this._element).on("keydown.dismiss.bs.modal",(function(e){t._config.keyboard&&27===e.which?(e.preventDefault(),t.hide()):t._config.keyboard||27!==e.which||t._triggerBackdropTransition()})):this._isShown||e(this._element).off("keydown.dismiss.bs.modal")},n._setResizeEvent=function(){var t=this;this._isShown?e(window).on("resize.bs.modal",(function(e){return t.handleUpdate(e)})):e(window).off("resize.bs.modal")},n._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){e(document.body).removeClass("modal-open"),t._resetAdjustments(),t._resetScrollbar(),e(t._element).trigger("hidden.bs.modal")}))},n._removeBackdrop=function(){this._backdrop&&(e(this._backdrop).remove(),this._backdrop=null)},n._showBackdrop=function(t){var n=this,i=e(this._element).hasClass("fade")?"fade":"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",i&&this._backdrop.classList.add(i),e(this._backdrop).appendTo(document.body),e(this._element).on("click.dismiss.bs.modal",(function(t){n._ignoreBackdropClick?n._ignoreBackdropClick=!1:t.target===t.currentTarget&&n._triggerBackdropTransition()})),i&&a.reflow(this._backdrop),e(this._backdrop).addClass("show"),!t)return;if(!i)return void t();var o=a.getTransitionDurationFromElement(this._backdrop);e(this._backdrop).one(a.TRANSITION_END,t).emulateTransitionEnd(o)}else if(!this._isShown&&this._backdrop){e(this._backdrop).removeClass("show");var s=function(){n._removeBackdrop(),t&&t()};if(e(this._element).hasClass("fade")){var r=a.getTransitionDurationFromElement(this._backdrop);e(this._backdrop).one(a.TRANSITION_END,s).emulateTransitionEnd(r)}else s()}else t&&t()},n._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},n._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},n._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},n._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){var n=[].slice.call(document.querySelectorAll(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top")),i=[].slice.call(document.querySelectorAll(".sticky-top"));e(n).each((function(n,i){var o=i.style.paddingRight,s=e(i).css("padding-right");e(i).data("padding-right",o).css("padding-right",parseFloat(s)+t._scrollbarWidth+"px")})),e(i).each((function(n,i){var o=i.style.marginRight,s=e(i).css("margin-right");e(i).data("margin-right",o).css("margin-right",parseFloat(s)-t._scrollbarWidth+"px")}));var o=document.body.style.paddingRight,s=e(document.body).css("padding-right");e(document.body).data("padding-right",o).css("padding-right",parseFloat(s)+this._scrollbarWidth+"px")}e(document.body).addClass("modal-open")},n._resetScrollbar=function(){var t=[].slice.call(document.querySelectorAll(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top"));e(t).each((function(t,n){var i=e(n).data("padding-right");e(n).removeData("padding-right"),n.style.paddingRight=i||""}));var n=[].slice.call(document.querySelectorAll(".sticky-top"));e(n).each((function(t,n){var i=e(n).data("margin-right");"undefined"!=typeof i&&e(n).css("margin-right",i).removeData("margin-right")}));var i=e(document.body).data("padding-right");e(document.body).removeData("padding-right"),document.body.style.paddingRight=i||""},n._getScrollbarWidth=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t._jQueryInterface=function(n,i){return this.each((function(){var o=e(this).data("bs.modal"),r=s({},j,e(this).data(),"object"==typeof n&&n?n:{});if(o||(o=new t(this,r),e(this).data("bs.modal",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n](i)}else r.show&&o.show(i)}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return j}}]),t}();e(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',(function(t){var n,i=this,o=a.getSelectorFromElement(this);o&&(n=document.querySelector(o));var r=e(n).data("bs.modal")?"toggle":s({},e(n).data(),e(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var l=e(n).one("show.bs.modal",(function(t){t.isDefaultPrevented()||l.one("hidden.bs.modal",(function(){e(i).is(":visible")&&i.focus()}))}));P._jQueryInterface.call(e(n),r,this)})),e.fn.modal=P._jQueryInterface,e.fn.modal.Constructor=P,e.fn.modal.noConflict=function(){return e.fn.modal=O,P._jQueryInterface};var R=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],L={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},q=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,F=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;function Q(t,e,n){if(0===t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),s=[].slice.call(i.body.querySelectorAll("*")),r=function(t,n){var i=s[t],r=i.nodeName.toLowerCase();if(-1===o.indexOf(i.nodeName.toLowerCase()))return i.parentNode.removeChild(i),"continue";var a=[].slice.call(i.attributes),l=[].concat(e["*"]||[],e[r]||[]);a.forEach((function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===R.indexOf(n)||Boolean(t.nodeValue.match(q)||t.nodeValue.match(F));for(var i=e.filter((function(t){return t instanceof RegExp})),o=0,s=i.length;o<s;o++)if(n.match(i[o]))return!0;return!1})(t,l)||i.removeAttribute(t.nodeName)}))},a=0,l=s.length;a<l;a++)r(a);return i.body.innerHTML}var B="tooltip",H=e.fn[B],U=new RegExp("(^|\\s)bs-tooltip\\S+","g"),M=["sanitize","whiteList","sanitizeFn"],W={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object",popperConfig:"(null|object)"},V={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},z={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:L,popperConfig:null},K={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},X=function(){function t(t,e){if("undefined"==typeof n)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var i=t.prototype;return i.enable=function(){this._isEnabled=!0},i.disable=function(){this._isEnabled=!1},i.toggleEnabled=function(){this._isEnabled=!this._isEnabled},i.toggle=function(t){if(this._isEnabled)if(t){var n=this.constructor.DATA_KEY,i=e(t.currentTarget).data(n);i||(i=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(e(this.getTipElement()).hasClass("show"))return void this._leave(null,this);this._enter(null,this)}},i.dispose=function(){clearTimeout(this._timeout),e.removeData(this.element,this.constructor.DATA_KEY),e(this.element).off(this.constructor.EVENT_KEY),e(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&e(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},i.show=function(){var t=this;if("none"===e(this.element).css("display"))throw new Error("Please use show on visible elements");var i=e.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){e(this.element).trigger(i);var o=a.findShadowRoot(this.element),s=e.contains(null!==o?o:this.element.ownerDocument.documentElement,this.element);if(i.isDefaultPrevented()||!s)return;var r=this.getTipElement(),l=a.getUID(this.constructor.NAME);r.setAttribute("id",l),this.element.setAttribute("aria-describedby",l),this.setContent(),this.config.animation&&e(r).addClass("fade");var c="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,h=this._getAttachment(c);this.addAttachmentClass(h);var u=this._getContainer();e(r).data(this.constructor.DATA_KEY,this),e.contains(this.element.ownerDocument.documentElement,this.tip)||e(r).appendTo(u),e(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new n(this.element,r,this._getPopperConfig(h)),e(r).addClass("show"),"ontouchstart"in document.documentElement&&e(document.body).children().on("mouseover",null,e.noop);var d=function(){t.config.animation&&t._fixTransition();var n=t._hoverState;t._hoverState=null,e(t.element).trigger(t.constructor.Event.SHOWN),"out"===n&&t._leave(null,t)};if(e(this.tip).hasClass("fade")){var f=a.getTransitionDurationFromElement(this.tip);e(this.tip).one(a.TRANSITION_END,d).emulateTransitionEnd(f)}else d()}},i.hide=function(t){var n=this,i=this.getTipElement(),o=e.Event(this.constructor.Event.HIDE),s=function(){"show"!==n._hoverState&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),e(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()};if(e(this.element).trigger(o),!o.isDefaultPrevented()){if(e(i).removeClass("show"),"ontouchstart"in document.documentElement&&e(document.body).children().off("mouseover",null,e.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,e(this.tip).hasClass("fade")){var r=a.getTransitionDurationFromElement(i);e(i).one(a.TRANSITION_END,s).emulateTransitionEnd(r)}else s();this._hoverState=""}},i.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},i.isWithContent=function(){return Boolean(this.getTitle())},i.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-tooltip-"+t)},i.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},i.setContent=function(){var t=this.getTipElement();this.setElementContent(e(t.querySelectorAll(".tooltip-inner")),this.getTitle()),e(t).removeClass("fade show")},i.setElementContent=function(t,n){"object"!=typeof n||!n.nodeType&&!n.jquery?this.config.html?(this.config.sanitize&&(n=Q(n,this.config.whiteList,this.config.sanitizeFn)),t.html(n)):t.text(n):this.config.html?e(n).parent().is(t)||t.empty().append(n):t.text(e(n).text())},i.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},i._getPopperConfig=function(t){var e=this;return s({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},i._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=s({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},i._getContainer=function(){return!1===this.config.container?document.body:a.isElement(this.config.container)?e(this.config.container):e(document).find(this.config.container)},i._getAttachment=function(t){return V[t.toUpperCase()]},i._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(n){if("click"===n)e(t.element).on(t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==n){var i="hover"===n?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,o="hover"===n?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;e(t.element).on(i,t.config.selector,(function(e){return t._enter(e)})).on(o,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},e(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=s({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},i._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},i._enter=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e(n.getTipElement()).hasClass("show")||"show"===n._hoverState?n._hoverState="show":(clearTimeout(n._timeout),n._hoverState="show",n.config.delay&&n.config.delay.show?n._timeout=setTimeout((function(){"show"===n._hoverState&&n.show()}),n.config.delay.show):n.show())},i._leave=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState="out",n.config.delay&&n.config.delay.hide?n._timeout=setTimeout((function(){"out"===n._hoverState&&n.hide()}),n.config.delay.hide):n.hide())},i._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},i._getConfig=function(t){var n=e(this.element).data();return Object.keys(n).forEach((function(t){-1!==M.indexOf(t)&&delete n[t]})),"number"==typeof(t=s({},this.constructor.Default,n,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),a.typeCheckConfig(B,t,this.constructor.DefaultType),t.sanitize&&(t.template=Q(t.template,t.whiteList,t.sanitizeFn)),t},i._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},i._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(U);null!==n&&n.length&&t.removeClass(n.join(""))},i._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},i._fixTransition=function(){var t=this.getTipElement(),n=this.config.animation;null===t.getAttribute("x-placement")&&(e(t).removeClass("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.tooltip"),o="object"==typeof n&&n;if((i||!/dispose|hide/.test(n))&&(i||(i=new t(this,o),e(this).data("bs.tooltip",i)),"string"==typeof n)){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return z}},{key:"NAME",get:function(){return B}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return K}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return W}}]),t}();e.fn[B]=X._jQueryInterface,e.fn[B].Constructor=X,e.fn[B].noConflict=function(){return e.fn[B]=H,X._jQueryInterface};var Y="popover",$=e.fn[Y],J=new RegExp("(^|\\s)bs-popover\\S+","g"),G=s({},X.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),Z=s({},X.DefaultType,{content:"(string|element|function)"}),tt={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},et=function(t){var n,i;function s(){return t.apply(this,arguments)||this}i=t,(n=s).prototype=Object.create(i.prototype),n.prototype.constructor=n,n.__proto__=i;var r=s.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-popover-"+t)},r.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},r.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());var n=this._getContent();"function"==typeof n&&(n=n.call(this.element)),this.setElementContent(t.find(".popover-body"),n),t.removeClass("fade show")},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(J);null!==n&&n.length>0&&t.removeClass(n.join(""))},s._jQueryInterface=function(t){return this.each((function(){var n=e(this).data("bs.popover"),i="object"==typeof t?t:null;if((n||!/dispose|hide/.test(t))&&(n||(n=new s(this,i),e(this).data("bs.popover",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},o(s,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return G}},{key:"NAME",get:function(){return Y}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return tt}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return Z}}]),s}(X);e.fn[Y]=et._jQueryInterface,e.fn[Y].Constructor=et,e.fn[Y].noConflict=function(){return e.fn[Y]=$,et._jQueryInterface};var nt="scrollspy",it=e.fn[nt],ot={offset:10,method:"auto",target:""},st={offset:"number",method:"string",target:"(string|element)"},rt=function(){function t(t,n){var i=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(n),this._selector=this._config.target+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e(this._scrollElement).on("scroll.bs.scrollspy",(function(t){return i._process(t)})),this.refresh(),this._process()}var n=t.prototype;return n.refresh=function(){var t=this,n=this._scrollElement===this._scrollElement.window?"offset":"position",i="auto"===this._config.method?n:this._config.method,o="position"===i?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(t){var n,s=a.getSelectorFromElement(t);if(s&&(n=document.querySelector(s)),n){var r=n.getBoundingClientRect();if(r.width||r.height)return[e(n)[i]().top+o,s]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},n.dispose=function(){e.removeData(this._element,"bs.scrollspy"),e(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},n._getConfig=function(t){if("string"!=typeof(t=s({},ot,"object"==typeof t&&t?t:{})).target&&a.isElement(t.target)){var n=e(t.target).attr("id");n||(n=a.getUID(nt),e(t.target).attr("id",n)),t.target="#"+n}return a.typeCheckConfig(nt,t,st),t},n._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},n._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},n._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},n._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},n._activate=function(t){this._activeTarget=t,this._clear();var n=this._selector.split(",").map((function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'})),i=e([].slice.call(document.querySelectorAll(n.join(","))));i.hasClass("dropdown-item")?(i.closest(".dropdown").find(".dropdown-toggle").addClass("active"),i.addClass("active")):(i.addClass("active"),i.parents(".nav, .list-group").prev(".nav-link, .list-group-item").addClass("active"),i.parents(".nav, .list-group").prev(".nav-item").children(".nav-link").addClass("active")),e(this._scrollElement).trigger("activate.bs.scrollspy",{relatedTarget:t})},n._clear=function(){[].slice.call(document.querySelectorAll(this._selector)).filter((function(t){return t.classList.contains("active")})).forEach((function(t){return t.classList.remove("active")}))},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.scrollspy");if(i||(i=new t(this,"object"==typeof n&&n),e(this).data("bs.scrollspy",i)),"string"==typeof n){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return ot}}]),t}();e(window).on("load.bs.scrollspy.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-spy="scroll"]')),n=t.length;n--;){var i=e(t[n]);rt._jQueryInterface.call(i,i.data())}})),e.fn[nt]=rt._jQueryInterface,e.fn[nt].Constructor=rt,e.fn[nt].noConflict=function(){return e.fn[nt]=it,rt._jQueryInterface};var at=e.fn.tab,lt=function(){function t(t){this._element=t}var n=t.prototype;return n.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&e(this._element).hasClass("active")||e(this._element).hasClass("disabled"))){var n,i,o=e(this._element).closest(".nav, .list-group")[0],s=a.getSelectorFromElement(this._element);if(o){var r="UL"===o.nodeName||"OL"===o.nodeName?"> li > .active":".active";i=(i=e.makeArray(e(o).find(r)))[i.length-1]}var l=e.Event("hide.bs.tab",{relatedTarget:this._element}),c=e.Event("show.bs.tab",{relatedTarget:i});if(i&&e(i).trigger(l),e(this._element).trigger(c),!c.isDefaultPrevented()&&!l.isDefaultPrevented()){s&&(n=document.querySelector(s)),this._activate(this._element,o);var h=function(){var n=e.Event("hidden.bs.tab",{relatedTarget:t._element}),o=e.Event("shown.bs.tab",{relatedTarget:i});e(i).trigger(n),e(t._element).trigger(o)};n?this._activate(n,n.parentNode,h):h()}}},n.dispose=function(){e.removeData(this._element,"bs.tab"),this._element=null},n._activate=function(t,n,i){var o=this,s=(!n||"UL"!==n.nodeName&&"OL"!==n.nodeName?e(n).children(".active"):e(n).find("> li > .active"))[0],r=i&&s&&e(s).hasClass("fade"),l=function(){return o._transitionComplete(t,s,i)};if(s&&r){var c=a.getTransitionDurationFromElement(s);e(s).removeClass("show").one(a.TRANSITION_END,l).emulateTransitionEnd(c)}else l()},n._transitionComplete=function(t,n,i){if(n){e(n).removeClass("active");var o=e(n.parentNode).find("> .dropdown-menu .active")[0];o&&e(o).removeClass("active"),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!1)}if(e(t).addClass("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),a.reflow(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&e(t.parentNode).hasClass("dropdown-menu")){var s=e(t).closest(".dropdown")[0];if(s){var r=[].slice.call(s.querySelectorAll(".dropdown-toggle"));e(r).addClass("active")}t.setAttribute("aria-expanded",!0)}i&&i()},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.tab");if(o||(o=new t(this),i.data("bs.tab",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n]()}}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}}]),t}();e(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),lt._jQueryInterface.call(e(this),"show")})),e.fn.tab=lt._jQueryInterface,e.fn.tab.Constructor=lt,e.fn.tab.noConflict=function(){return e.fn.tab=at,lt._jQueryInterface};var ct=e.fn.toast,ht={animation:"boolean",autohide:"boolean",delay:"number"},ut={animation:!0,autohide:!0,delay:500},dt=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var n=t.prototype;return n.show=function(){var t=this,n=e.Event("show.bs.toast");if(e(this._element).trigger(n),!n.isDefaultPrevented()){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var i=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),e(t._element).trigger("shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),a.reflow(this._element),this._element.classList.add("showing"),this._config.animation){var o=a.getTransitionDurationFromElement(this._element);e(this._element).one(a.TRANSITION_END,i).emulateTransitionEnd(o)}else i()}},n.hide=function(){if(this._element.classList.contains("show")){var t=e.Event("hide.bs.toast");e(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},n.dispose=function(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),e(this._element).off("click.dismiss.bs.toast"),e.removeData(this._element,"bs.toast"),this._element=null,this._config=null},n._getConfig=function(t){return t=s({},ut,e(this._element).data(),"object"==typeof t&&t?t:{}),a.typeCheckConfig("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;e(this._element).on("click.dismiss.bs.toast",'[data-dismiss="toast"]',(function(){return t.hide()}))},n._close=function(){var t=this,n=function(){t._element.classList.add("hide"),e(t._element).trigger("hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var i=a.getTransitionDurationFromElement(this._element);e(this._element).one(a.TRANSITION_END,n).emulateTransitionEnd(i)}else n()},n._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.toast");if(o||(o=new t(this,"object"==typeof n&&n),i.data("bs.toast",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n](this)}}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"DefaultType",get:function(){return ht}},{key:"Default",get:function(){return ut}}]),t}();e.fn.toast=dt._jQueryInterface,e.fn.toast.Constructor=dt,e.fn.toast.noConflict=function(){return e.fn.toast=ct,dt._jQueryInterface},t.Alert=h,t.Button=d,t.Carousel=b,t.Collapse=C,t.Dropdown=I,t.Modal=P,t.Popover=et,t.Scrollspy=rt,t.Tab=lt,t.Toast=dt,t.Tooltip=X,t.Util=a,Object.defineProperty(t,"__esModule",{value:!0})})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap={},t.jQuery,t.Popper)}(this,(function(t,e,n){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var o=i(e),a=i(n);function s(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function l(t,e,n){return e&&s(t.prototype,e),n&&s(t,n),t}function r(){return(r=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t}).apply(this,arguments)}function u(t){var e=this,n=!1;return o.default(this).one(d.TRANSITION_END,(function(){n=!0})),setTimeout((function(){n||d.triggerTransitionEnd(e)}),t),this}var d={TRANSITION_END:"bsTransitionEnd",getUID:function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=o.default(t).css("transition-duration"),n=o.default(t).css("transition-delay"),i=parseFloat(e),a=parseFloat(n);return i||a?(e=e.split(",")[0],n=n.split(",")[0],1e3*(parseFloat(e)+parseFloat(n))):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){o.default(t).trigger("transitionend")},supportsTransitionEnd:function(){return Boolean("transitionend")},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var o=n[i],a=e[i],s=a&&d.isElement(a)?"element":null===(l=a)||"undefined"==typeof l?""+l:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(s))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+s+'" but expected type "'+o+'".')}var l},findShadowRoot:function(t){if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){var e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?d.findShadowRoot(t.parentNode):null},jQueryDetection:function(){if("undefined"==typeof o.default)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=o.default.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||t[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};d.jQueryDetection(),o.default.fn.emulateTransitionEnd=u,o.default.event.special[d.TRANSITION_END]={bindType:"transitionend",delegateType:"transitionend",handle:function(t){if(o.default(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var f="alert",c=o.default.fn[f],h=function(){function t(t){this._element=t}var e=t.prototype;return e.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},e.dispose=function(){o.default.removeData(this._element,"bs.alert"),this._element=null},e._getRootElement=function(t){var e=d.getSelectorFromElement(t),n=!1;return e&&(n=document.querySelector(e)),n||(n=o.default(t).closest(".alert")[0]),n},e._triggerCloseEvent=function(t){var e=o.default.Event("close.bs.alert");return o.default(t).trigger(e),e},e._removeElement=function(t){var e=this;if(o.default(t).removeClass("show"),o.default(t).hasClass("fade")){var n=d.getTransitionDurationFromElement(t);o.default(t).one(d.TRANSITION_END,(function(n){return e._destroyElement(t,n)})).emulateTransitionEnd(n)}else this._destroyElement(t)},e._destroyElement=function(t){o.default(t).detach().trigger("closed.bs.alert").remove()},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data("bs.alert");i||(i=new t(this),n.data("bs.alert",i)),"close"===e&&i[e](this)}))},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},l(t,null,[{key:"VERSION",get:function(){return"4.5.3"}}]),t}();o.default(document).on("click.bs.alert.data-api",'[data-dismiss="alert"]',h._handleDismiss(new h)),o.default.fn[f]=h._jQueryInterface,o.default.fn[f].Constructor=h,o.default.fn[f].noConflict=function(){return o.default.fn[f]=c,h._jQueryInterface};var g=o.default.fn.button,m=function(){function t(t){this._element=t,this.shouldAvoidTriggerChange=!1}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=o.default(this._element).closest('[data-toggle="buttons"]')[0];if(n){var i=this._element.querySelector('input:not([type="hidden"])');if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains("active"))t=!1;else{var a=n.querySelector(".active");a&&o.default(a).removeClass("active")}t&&("checkbox"!==i.type&&"radio"!==i.type||(i.checked=!this._element.classList.contains("active")),this.shouldAvoidTriggerChange||o.default(i).trigger("change")),i.focus(),e=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains("active")),t&&o.default(this._element).toggleClass("active"))},e.dispose=function(){o.default.removeData(this._element,"bs.button"),this._element=null},t._jQueryInterface=function(e,n){return this.each((function(){var i=o.default(this),a=i.data("bs.button");a||(a=new t(this),i.data("bs.button",a)),a.shouldAvoidTriggerChange=n,"toggle"===e&&a[e]()}))},l(t,null,[{key:"VERSION",get:function(){return"4.5.3"}}]),t}();o.default(document).on("click.bs.button.data-api",'[data-toggle^="button"]',(function(t){var e=t.target,n=e;if(o.default(e).hasClass("btn")||(e=o.default(e).closest(".btn")[0]),!e||e.hasAttribute("disabled")||e.classList.contains("disabled"))t.preventDefault();else{var i=e.querySelector('input:not([type="hidden"])');if(i&&(i.hasAttribute("disabled")||i.classList.contains("disabled")))return void t.preventDefault();"INPUT"!==n.tagName&&"LABEL"===e.tagName||m._jQueryInterface.call(o.default(e),"toggle","INPUT"===n.tagName)}})).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',(function(t){var e=o.default(t.target).closest(".btn")[0];o.default(e).toggleClass("focus",/^focus(in)?$/.test(t.type))})),o.default(window).on("load.bs.button.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')),e=0,n=t.length;e<n;e++){var i=t[e],o=i.querySelector('input:not([type="hidden"])');o.checked||o.hasAttribute("checked")?i.classList.add("active"):i.classList.remove("active")}for(var a=0,s=(t=[].slice.call(document.querySelectorAll('[data-toggle="button"]'))).length;a<s;a++){var l=t[a];"true"===l.getAttribute("aria-pressed")?l.classList.add("active"):l.classList.remove("active")}})),o.default.fn.button=m._jQueryInterface,o.default.fn.button.Constructor=m,o.default.fn.button.noConflict=function(){return o.default.fn.button=g,m._jQueryInterface};var p="carousel",_=".bs.carousel",v=o.default.fn[p],b={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},y={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},E={TOUCH:"touch",PEN:"pen"},w=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=this._element.querySelector(".carousel-indicators"),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var e=t.prototype;return e.next=function(){this._isSliding||this._slide("next")},e.nextWhenVisible=function(){var t=o.default(this._element);!document.hidden&&t.is(":visible")&&"hidden"!==t.css("visibility")&&this.next()},e.prev=function(){this._isSliding||this._slide("prev")},e.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(d.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(t){var e=this;this._activeElement=this._element.querySelector(".active.carousel-item");var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)o.default(this._element).one("slid.bs.carousel",(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var i=t>n?"next":"prev";this._slide(i,this._items[t])}},e.dispose=function(){o.default(this._element).off(_),o.default.removeData(this._element,"bs.carousel"),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=r({},b,t),d.typeCheckConfig(p,t,y),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&o.default(this._element).on("keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&o.default(this._element).on("mouseenter.bs.carousel",(function(e){return t.pause(e)})).on("mouseleave.bs.carousel",(function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&E[e.originalEvent.pointerType.toUpperCase()]?t.touchStartX=e.originalEvent.clientX:t._pointerEvent||(t.touchStartX=e.originalEvent.touches[0].clientX)},n=function(e){t._pointerEvent&&E[e.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=e.originalEvent.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};o.default(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel",(function(t){return t.preventDefault()})),this._pointerEvent?(o.default(this._element).on("pointerdown.bs.carousel",(function(t){return e(t)})),o.default(this._element).on("pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(o.default(this._element).on("touchstart.bs.carousel",(function(t){return e(t)})),o.default(this._element).on("touchmove.bs.carousel",(function(e){return function(e){e.originalEvent.touches&&e.originalEvent.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.originalEvent.touches[0].clientX-t.touchStartX}(e)})),o.default(this._element).on("touchend.bs.carousel",(function(t){return n(t)})))}},e._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),a=this._items.length-1;if((i&&0===o||n&&o===a)&&!this._config.wrap)return e;var s=(o+("prev"===t?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},e._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(this._element.querySelector(".active.carousel-item")),a=o.default.Event("slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n});return o.default(this._element).trigger(a),a},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));o.default(e).removeClass("active");var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&o.default(n).addClass("active")}},e._slide=function(t,e){var n,i,a,s=this,l=this._element.querySelector(".active.carousel-item"),r=this._getItemIndex(l),u=e||l&&this._getItemByDirection(t,l),f=this._getItemIndex(u),c=Boolean(this._interval);if("next"===t?(n="carousel-item-left",i="carousel-item-next",a="left"):(n="carousel-item-right",i="carousel-item-prev",a="right"),u&&o.default(u).hasClass("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(u,a).isDefaultPrevented()&&l&&u){this._isSliding=!0,c&&this.pause(),this._setActiveIndicatorElement(u);var h=o.default.Event("slid.bs.carousel",{relatedTarget:u,direction:a,from:r,to:f});if(o.default(this._element).hasClass("slide")){o.default(u).addClass(i),d.reflow(u),o.default(l).addClass(n),o.default(u).addClass(n);var g=parseInt(u.getAttribute("data-interval"),10);g?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=g):this._config.interval=this._config.defaultInterval||this._config.interval;var m=d.getTransitionDurationFromElement(l);o.default(l).one(d.TRANSITION_END,(function(){o.default(u).removeClass(n+" "+i).addClass("active"),o.default(l).removeClass("active "+i+" "+n),s._isSliding=!1,setTimeout((function(){return o.default(s._element).trigger(h)}),0)})).emulateTransitionEnd(m)}else o.default(l).removeClass("active"),o.default(u).addClass("active"),this._isSliding=!1,o.default(this._element).trigger(h);c&&this.cycle()}},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this).data("bs.carousel"),i=r({},b,o.default(this).data());"object"==typeof e&&(i=r({},i,e));var a="string"==typeof e?e:i.slide;if(n||(n=new t(this,i),o.default(this).data("bs.carousel",n)),"number"==typeof e)n.to(e);else if("string"==typeof a){if("undefined"==typeof n[a])throw new TypeError('No method named "'+a+'"');n[a]()}else i.interval&&i.ride&&(n.pause(),n.cycle())}))},t._dataApiClickHandler=function(e){var n=d.getSelectorFromElement(this);if(n){var i=o.default(n)[0];if(i&&o.default(i).hasClass("carousel")){var a=r({},o.default(i).data(),o.default(this).data()),s=this.getAttribute("data-slide-to");s&&(a.interval=!1),t._jQueryInterface.call(o.default(i),a),s&&o.default(i).data("bs.carousel").to(s),e.preventDefault()}}},l(t,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"Default",get:function(){return b}}]),t}();o.default(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",w._dataApiClickHandler),o.default(window).on("load.bs.carousel.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-ride="carousel"]')),e=0,n=t.length;e<n;e++){var i=o.default(t[e]);w._jQueryInterface.call(i,i.data())}})),o.default.fn[p]=w._jQueryInterface,o.default.fn[p].Constructor=w,o.default.fn[p].noConflict=function(){return o.default.fn[p]=v,w._jQueryInterface};var T="collapse",C=o.default.fn[T],S={toggle:!0,parent:""},N={toggle:"boolean",parent:"(string|element)"},D=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=[].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=[].slice.call(document.querySelectorAll('[data-toggle="collapse"]')),i=0,o=n.length;i<o;i++){var a=n[i],s=d.getSelectorFromElement(a),l=[].slice.call(document.querySelectorAll(s)).filter((function(e){return e===t}));null!==s&&l.length>0&&(this._selector=s,this._triggerArray.push(a))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var e=t.prototype;return e.toggle=function(){o.default(this._element).hasClass("show")?this.hide():this.show()},e.show=function(){var e,n,i=this;if(!this._isTransitioning&&!o.default(this._element).hasClass("show")&&(this._parent&&0===(e=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((function(t){return"string"==typeof i._config.parent?t.getAttribute("data-parent")===i._config.parent:t.classList.contains("collapse")}))).length&&(e=null),!(e&&(n=o.default(e).not(this._selector).data("bs.collapse"))&&n._isTransitioning))){var a=o.default.Event("show.bs.collapse");if(o.default(this._element).trigger(a),!a.isDefaultPrevented()){e&&(t._jQueryInterface.call(o.default(e).not(this._selector),"hide"),n||o.default(e).data("bs.collapse",null));var s=this._getDimension();o.default(this._element).removeClass("collapse").addClass("collapsing"),this._element.style[s]=0,this._triggerArray.length&&o.default(this._triggerArray).removeClass("collapsed").attr("aria-expanded",!0),this.setTransitioning(!0);var l="scroll"+(s[0].toUpperCase()+s.slice(1)),r=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,(function(){o.default(i._element).removeClass("collapsing").addClass("collapse show"),i._element.style[s]="",i.setTransitioning(!1),o.default(i._element).trigger("shown.bs.collapse")})).emulateTransitionEnd(r),this._element.style[s]=this._element[l]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&o.default(this._element).hasClass("show")){var e=o.default.Event("hide.bs.collapse");if(o.default(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",d.reflow(this._element),o.default(this._element).addClass("collapsing").removeClass("collapse show");var i=this._triggerArray.length;if(i>0)for(var a=0;a<i;a++){var s=this._triggerArray[a],l=d.getSelectorFromElement(s);if(null!==l)o.default([].slice.call(document.querySelectorAll(l))).hasClass("show")||o.default(s).addClass("collapsed").attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var r=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,(function(){t.setTransitioning(!1),o.default(t._element).removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")})).emulateTransitionEnd(r)}}},e.setTransitioning=function(t){this._isTransitioning=t},e.dispose=function(){o.default.removeData(this._element,"bs.collapse"),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(t){return(t=r({},S,t)).toggle=Boolean(t.toggle),d.typeCheckConfig(T,t,N),t},e._getDimension=function(){return o.default(this._element).hasClass("width")?"width":"height"},e._getParent=function(){var e,n=this;d.isElement(this._config.parent)?(e=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(e=this._config.parent[0])):e=document.querySelector(this._config.parent);var i='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',a=[].slice.call(e.querySelectorAll(i));return o.default(a).each((function(e,i){n._addAriaAndCollapsedClass(t._getTargetFromElement(i),[i])})),e},e._addAriaAndCollapsedClass=function(t,e){var n=o.default(t).hasClass("show");e.length&&o.default(e).toggleClass("collapsed",!n).attr("aria-expanded",n)},t._getTargetFromElement=function(t){var e=d.getSelectorFromElement(t);return e?document.querySelector(e):null},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data("bs.collapse"),a=r({},S,n.data(),"object"==typeof e&&e?e:{});if(!i&&a.toggle&&"string"==typeof e&&/show|hide/.test(e)&&(a.toggle=!1),i||(i=new t(this,a),n.data("bs.collapse",i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"Default",get:function(){return S}}]),t}();o.default(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',(function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var e=o.default(this),n=d.getSelectorFromElement(this),i=[].slice.call(document.querySelectorAll(n));o.default(i).each((function(){var t=o.default(this),n=t.data("bs.collapse")?"toggle":e.data();D._jQueryInterface.call(t,n)}))})),o.default.fn[T]=D._jQueryInterface,o.default.fn[T].Constructor=D,o.default.fn[T].noConflict=function(){return o.default.fn[T]=C,D._jQueryInterface};var k="dropdown",A=o.default.fn[k],I=new RegExp("38|40|27"),j={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},O={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},x=function(){function t(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var e=t.prototype;return e.toggle=function(){if(!this._element.disabled&&!o.default(this._element).hasClass("disabled")){var e=o.default(this._menu).hasClass("show");t._clearMenus(),e||this.show(!0)}},e.show=function(e){if(void 0===e&&(e=!1),!(this._element.disabled||o.default(this._element).hasClass("disabled")||o.default(this._menu).hasClass("show"))){var n={relatedTarget:this._element},i=o.default.Event("show.bs.dropdown",n),s=t._getParentFromElement(this._element);if(o.default(s).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar&&e){if("undefined"==typeof a.default)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");var l=this._element;"parent"===this._config.reference?l=s:d.isElement(this._config.reference)&&(l=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(l=this._config.reference[0])),"scrollParent"!==this._config.boundary&&o.default(s).addClass("position-static"),this._popper=new a.default(l,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===o.default(s).closest(".navbar-nav").length&&o.default(document.body).children().on("mouseover",null,o.default.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),o.default(this._menu).toggleClass("show"),o.default(s).toggleClass("show").trigger(o.default.Event("shown.bs.dropdown",n))}}},e.hide=function(){if(!this._element.disabled&&!o.default(this._element).hasClass("disabled")&&o.default(this._menu).hasClass("show")){var e={relatedTarget:this._element},n=o.default.Event("hide.bs.dropdown",e),i=t._getParentFromElement(this._element);o.default(i).trigger(n),n.isDefaultPrevented()||(this._popper&&this._popper.destroy(),o.default(this._menu).toggleClass("show"),o.default(i).toggleClass("show").trigger(o.default.Event("hidden.bs.dropdown",e)))}},e.dispose=function(){o.default.removeData(this._element,"bs.dropdown"),o.default(this._element).off(".bs.dropdown"),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},e.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},e._addEventListeners=function(){var t=this;o.default(this._element).on("click.bs.dropdown",(function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}))},e._getConfig=function(t){return t=r({},this.constructor.Default,o.default(this._element).data(),t),d.typeCheckConfig(k,t,this.constructor.DefaultType),t},e._getMenuElement=function(){if(!this._menu){var e=t._getParentFromElement(this._element);e&&(this._menu=e.querySelector(".dropdown-menu"))}return this._menu},e._getPlacement=function(){var t=o.default(this._element.parentNode),e="bottom-start";return t.hasClass("dropup")?e=o.default(this._menu).hasClass("dropdown-menu-right")?"top-end":"top-start":t.hasClass("dropright")?e="right-start":t.hasClass("dropleft")?e="left-start":o.default(this._menu).hasClass("dropdown-menu-right")&&(e="bottom-end"),e},e._detectNavbar=function(){return o.default(this._element).closest(".navbar").length>0},e._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},e._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),r({},t,this._config.popperConfig)},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this).data("bs.dropdown");if(n||(n=new t(this,"object"==typeof e?e:null),o.default(this).data("bs.dropdown",n)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var n=[].slice.call(document.querySelectorAll('[data-toggle="dropdown"]')),i=0,a=n.length;i<a;i++){var s=t._getParentFromElement(n[i]),l=o.default(n[i]).data("bs.dropdown"),r={relatedTarget:n[i]};if(e&&"click"===e.type&&(r.clickEvent=e),l){var u=l._menu;if(o.default(s).hasClass("show")&&!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&9===e.which)&&o.default.contains(s,e.target))){var d=o.default.Event("hide.bs.dropdown",r);o.default(s).trigger(d),d.isDefaultPrevented()||("ontouchstart"in document.documentElement&&o.default(document.body).children().off("mouseover",null,o.default.noop),n[i].setAttribute("aria-expanded","false"),l._popper&&l._popper.destroy(),o.default(u).removeClass("show"),o.default(s).removeClass("show").trigger(o.default.Event("hidden.bs.dropdown",r)))}}}},t._getParentFromElement=function(t){var e,n=d.getSelectorFromElement(t);return n&&(e=document.querySelector(n)),e||t.parentNode},t._dataApiKeydownHandler=function(e){if(!(/input|textarea/i.test(e.target.tagName)?32===e.which||27!==e.which&&(40!==e.which&&38!==e.which||o.default(e.target).closest(".dropdown-menu").length):!I.test(e.which))&&!this.disabled&&!o.default(this).hasClass("disabled")){var n=t._getParentFromElement(this),i=o.default(n).hasClass("show");if(i||27!==e.which){if(e.preventDefault(),e.stopPropagation(),!i||27===e.which||32===e.which)return 27===e.which&&o.default(n.querySelector('[data-toggle="dropdown"]')).trigger("focus"),void o.default(this).trigger("click");var a=[].slice.call(n.querySelectorAll(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)")).filter((function(t){return o.default(t).is(":visible")}));if(0!==a.length){var s=a.indexOf(e.target);38===e.which&&s>0&&s--,40===e.which&&s<a.length-1&&s++,s<0&&(s=0),a[s].focus()}}}},l(t,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"Default",get:function(){return j}},{key:"DefaultType",get:function(){return O}}]),t}();o.default(document).on("keydown.bs.dropdown.data-api",'[data-toggle="dropdown"]',x._dataApiKeydownHandler).on("keydown.bs.dropdown.data-api",".dropdown-menu",x._dataApiKeydownHandler).on("click.bs.dropdown.data-api keyup.bs.dropdown.data-api",x._clearMenus).on("click.bs.dropdown.data-api",'[data-toggle="dropdown"]',(function(t){t.preventDefault(),t.stopPropagation(),x._jQueryInterface.call(o.default(this),"toggle")})).on("click.bs.dropdown.data-api",".dropdown form",(function(t){t.stopPropagation()})),o.default.fn[k]=x._jQueryInterface,o.default.fn[k].Constructor=x,o.default.fn[k].noConflict=function(){return o.default.fn[k]=A,x._jQueryInterface};var P=o.default.fn.modal,R={backdrop:!0,keyboard:!0,focus:!0,show:!0},L={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},q=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=t.querySelector(".modal-dialog"),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}var e=t.prototype;return e.toggle=function(t){return this._isShown?this.hide():this.show(t)},e.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){o.default(this._element).hasClass("fade")&&(this._isTransitioning=!0);var n=o.default.Event("show.bs.modal",{relatedTarget:t});o.default(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),o.default(this._element).on("click.dismiss.bs.modal",'[data-dismiss="modal"]',(function(t){return e.hide(t)})),o.default(this._dialog).on("mousedown.dismiss.bs.modal",(function(){o.default(e._element).one("mouseup.dismiss.bs.modal",(function(t){o.default(t.target).is(e._element)&&(e._ignoreBackdropClick=!0)}))})),this._showBackdrop((function(){return e._showElement(t)})))}},e.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=o.default.Event("hide.bs.modal");if(o.default(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=o.default(this._element).hasClass("fade");if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),o.default(document).off("focusin.bs.modal"),o.default(this._element).removeClass("show"),o.default(this._element).off("click.dismiss.bs.modal"),o.default(this._dialog).off("mousedown.dismiss.bs.modal"),i){var a=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,(function(t){return e._hideModal(t)})).emulateTransitionEnd(a)}else this._hideModal()}}},e.dispose=function(){[window,this._element,this._dialog].forEach((function(t){return o.default(t).off(".bs.modal")})),o.default(document).off("focusin.bs.modal"),o.default.removeData(this._element,"bs.modal"),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},e.handleUpdate=function(){this._adjustDialog()},e._getConfig=function(t){return t=r({},R,t),d.typeCheckConfig("modal",t,L),t},e._triggerBackdropTransition=function(){var t=this;if("static"===this._config.backdrop){var e=o.default.Event("hidePrevented.bs.modal");if(o.default(this._element).trigger(e),e.isDefaultPrevented())return;var n=this._element.scrollHeight>document.documentElement.clientHeight;n||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");var i=d.getTransitionDurationFromElement(this._dialog);o.default(this._element).off(d.TRANSITION_END),o.default(this._element).one(d.TRANSITION_END,(function(){t._element.classList.remove("modal-static"),n||o.default(t._element).one(d.TRANSITION_END,(function(){t._element.style.overflowY=""})).emulateTransitionEnd(t._element,i)})).emulateTransitionEnd(i),this._element.focus()}else this.hide()},e._showElement=function(t){var e=this,n=o.default(this._element).hasClass("fade"),i=this._dialog?this._dialog.querySelector(".modal-body"):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),o.default(this._dialog).hasClass("modal-dialog-scrollable")&&i?i.scrollTop=0:this._element.scrollTop=0,n&&d.reflow(this._element),o.default(this._element).addClass("show"),this._config.focus&&this._enforceFocus();var a=o.default.Event("shown.bs.modal",{relatedTarget:t}),s=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,o.default(e._element).trigger(a)};if(n){var l=d.getTransitionDurationFromElement(this._dialog);o.default(this._dialog).one(d.TRANSITION_END,s).emulateTransitionEnd(l)}else s()},e._enforceFocus=function(){var t=this;o.default(document).off("focusin.bs.modal").on("focusin.bs.modal",(function(e){document!==e.target&&t._element!==e.target&&0===o.default(t._element).has(e.target).length&&t._element.focus()}))},e._setEscapeEvent=function(){var t=this;this._isShown?o.default(this._element).on("keydown.dismiss.bs.modal",(function(e){t._config.keyboard&&27===e.which?(e.preventDefault(),t.hide()):t._config.keyboard||27!==e.which||t._triggerBackdropTransition()})):this._isShown||o.default(this._element).off("keydown.dismiss.bs.modal")},e._setResizeEvent=function(){var t=this;this._isShown?o.default(window).on("resize.bs.modal",(function(e){return t.handleUpdate(e)})):o.default(window).off("resize.bs.modal")},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){o.default(document.body).removeClass("modal-open"),t._resetAdjustments(),t._resetScrollbar(),o.default(t._element).trigger("hidden.bs.modal")}))},e._removeBackdrop=function(){this._backdrop&&(o.default(this._backdrop).remove(),this._backdrop=null)},e._showBackdrop=function(t){var e=this,n=o.default(this._element).hasClass("fade")?"fade":"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",n&&this._backdrop.classList.add(n),o.default(this._backdrop).appendTo(document.body),o.default(this._element).on("click.dismiss.bs.modal",(function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&e._triggerBackdropTransition()})),n&&d.reflow(this._backdrop),o.default(this._backdrop).addClass("show"),!t)return;if(!n)return void t();var i=d.getTransitionDurationFromElement(this._backdrop);o.default(this._backdrop).one(d.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){o.default(this._backdrop).removeClass("show");var a=function(){e._removeBackdrop(),t&&t()};if(o.default(this._element).hasClass("fade")){var s=d.getTransitionDurationFromElement(this._backdrop);o.default(this._backdrop).one(d.TRANSITION_END,a).emulateTransitionEnd(s)}else a()}else t&&t()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},e._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){var e=[].slice.call(document.querySelectorAll(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top")),n=[].slice.call(document.querySelectorAll(".sticky-top"));o.default(e).each((function(e,n){var i=n.style.paddingRight,a=o.default(n).css("padding-right");o.default(n).data("padding-right",i).css("padding-right",parseFloat(a)+t._scrollbarWidth+"px")})),o.default(n).each((function(e,n){var i=n.style.marginRight,a=o.default(n).css("margin-right");o.default(n).data("margin-right",i).css("margin-right",parseFloat(a)-t._scrollbarWidth+"px")}));var i=document.body.style.paddingRight,a=o.default(document.body).css("padding-right");o.default(document.body).data("padding-right",i).css("padding-right",parseFloat(a)+this._scrollbarWidth+"px")}o.default(document.body).addClass("modal-open")},e._resetScrollbar=function(){var t=[].slice.call(document.querySelectorAll(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top"));o.default(t).each((function(t,e){var n=o.default(e).data("padding-right");o.default(e).removeData("padding-right"),e.style.paddingRight=n||""}));var e=[].slice.call(document.querySelectorAll(".sticky-top"));o.default(e).each((function(t,e){var n=o.default(e).data("margin-right");"undefined"!=typeof n&&o.default(e).css("margin-right",n).removeData("margin-right")}));var n=o.default(document.body).data("padding-right");o.default(document.body).removeData("padding-right"),document.body.style.paddingRight=n||""},e._getScrollbarWidth=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t._jQueryInterface=function(e,n){return this.each((function(){var i=o.default(this).data("bs.modal"),a=r({},R,o.default(this).data(),"object"==typeof e&&e?e:{});if(i||(i=new t(this,a),o.default(this).data("bs.modal",i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e](n)}else a.show&&i.show(n)}))},l(t,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"Default",get:function(){return R}}]),t}();o.default(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',(function(t){var e,n=this,i=d.getSelectorFromElement(this);i&&(e=document.querySelector(i));var a=o.default(e).data("bs.modal")?"toggle":r({},o.default(e).data(),o.default(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var s=o.default(e).one("show.bs.modal",(function(t){t.isDefaultPrevented()||s.one("hidden.bs.modal",(function(){o.default(n).is(":visible")&&n.focus()}))}));q._jQueryInterface.call(o.default(e),a,this)})),o.default.fn.modal=q._jQueryInterface,o.default.fn.modal.Constructor=q,o.default.fn.modal.noConflict=function(){return o.default.fn.modal=P,q._jQueryInterface};var F=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Q={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},B=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,H=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;function U(t,e,n){if(0===t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),a=[].slice.call(i.body.querySelectorAll("*")),s=function(t,n){var i=a[t],s=i.nodeName.toLowerCase();if(-1===o.indexOf(i.nodeName.toLowerCase()))return i.parentNode.removeChild(i),"continue";var l=[].slice.call(i.attributes),r=[].concat(e["*"]||[],e[s]||[]);l.forEach((function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===F.indexOf(n)||Boolean(t.nodeValue.match(B)||t.nodeValue.match(H));for(var i=e.filter((function(t){return t instanceof RegExp})),o=0,a=i.length;o<a;o++)if(n.match(i[o]))return!0;return!1})(t,r)||i.removeAttribute(t.nodeName)}))},l=0,r=a.length;l<r;l++)s(l);return i.body.innerHTML}var M="tooltip",W=o.default.fn[M],V=new RegExp("(^|\\s)bs-tooltip\\S+","g"),z=["sanitize","whiteList","sanitizeFn"],K={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object",popperConfig:"(null|object)"},X={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Y={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Q,popperConfig:null},$={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},J=function(){function t(t,e){if("undefined"==typeof a.default)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var e=t.prototype;return e.enable=function(){this._isEnabled=!0},e.disable=function(){this._isEnabled=!1},e.toggleEnabled=function(){this._isEnabled=!this._isEnabled},e.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=o.default(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(o.default(this.getTipElement()).hasClass("show"))return void this._leave(null,this);this._enter(null,this)}},e.dispose=function(){clearTimeout(this._timeout),o.default.removeData(this.element,this.constructor.DATA_KEY),o.default(this.element).off(this.constructor.EVENT_KEY),o.default(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&o.default(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},e.show=function(){var t=this;if("none"===o.default(this.element).css("display"))throw new Error("Please use show on visible elements");var e=o.default.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){o.default(this.element).trigger(e);var n=d.findShadowRoot(this.element),i=o.default.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(e.isDefaultPrevented()||!i)return;var s=this.getTipElement(),l=d.getUID(this.constructor.NAME);s.setAttribute("id",l),this.element.setAttribute("aria-describedby",l),this.setContent(),this.config.animation&&o.default(s).addClass("fade");var r="function"==typeof this.config.placement?this.config.placement.call(this,s,this.element):this.config.placement,u=this._getAttachment(r);this.addAttachmentClass(u);var f=this._getContainer();o.default(s).data(this.constructor.DATA_KEY,this),o.default.contains(this.element.ownerDocument.documentElement,this.tip)||o.default(s).appendTo(f),o.default(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new a.default(this.element,s,this._getPopperConfig(u)),o.default(s).addClass("show"),"ontouchstart"in document.documentElement&&o.default(document.body).children().on("mouseover",null,o.default.noop);var c=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,o.default(t.element).trigger(t.constructor.Event.SHOWN),"out"===e&&t._leave(null,t)};if(o.default(this.tip).hasClass("fade")){var h=d.getTransitionDurationFromElement(this.tip);o.default(this.tip).one(d.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},e.hide=function(t){var e=this,n=this.getTipElement(),i=o.default.Event(this.constructor.Event.HIDE),a=function(){"show"!==e._hoverState&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),o.default(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(o.default(this.element).trigger(i),!i.isDefaultPrevented()){if(o.default(n).removeClass("show"),"ontouchstart"in document.documentElement&&o.default(document.body).children().off("mouseover",null,o.default.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,o.default(this.tip).hasClass("fade")){var s=d.getTransitionDurationFromElement(n);o.default(n).one(d.TRANSITION_END,a).emulateTransitionEnd(s)}else a();this._hoverState=""}},e.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},e.isWithContent=function(){return Boolean(this.getTitle())},e.addAttachmentClass=function(t){o.default(this.getTipElement()).addClass("bs-tooltip-"+t)},e.getTipElement=function(){return this.tip=this.tip||o.default(this.config.template)[0],this.tip},e.setContent=function(){var t=this.getTipElement();this.setElementContent(o.default(t.querySelectorAll(".tooltip-inner")),this.getTitle()),o.default(t).removeClass("fade show")},e.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=U(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?o.default(e).parent().is(t)||t.empty().append(e):t.text(o.default(e).text())},e.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},e._getPopperConfig=function(t){var e=this;return r({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},e._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},e._getContainer=function(){return!1===this.config.container?document.body:d.isElement(this.config.container)?o.default(this.config.container):o.default(document).find(this.config.container)},e._getAttachment=function(t){return X[t.toUpperCase()]},e._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)o.default(t.element).on(t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n="hover"===e?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i="hover"===e?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;o.default(t.element).on(n,t.config.selector,(function(e){return t._enter(e)})).on(i,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},o.default(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=r({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},e._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},e._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||o.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),o.default(e.getTipElement()).hasClass("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){"show"===e._hoverState&&e.show()}),e.config.delay.show):e.show())},e._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||o.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){"out"===e._hoverState&&e.hide()}),e.config.delay.hide):e.hide())},e._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},e._getConfig=function(t){var e=o.default(this.element).data();return Object.keys(e).forEach((function(t){-1!==z.indexOf(t)&&delete e[t]})),"number"==typeof(t=r({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),d.typeCheckConfig(M,t,this.constructor.DefaultType),t.sanitize&&(t.template=U(t.template,t.whiteList,t.sanitizeFn)),t},e._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},e._cleanTipClass=function(){var t=o.default(this.getTipElement()),e=t.attr("class").match(V);null!==e&&e.length&&t.removeClass(e.join(""))},e._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},e._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(o.default(t).removeClass("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data("bs.tooltip"),a="object"==typeof e&&e;if((i||!/dispose|hide/.test(e))&&(i||(i=new t(this,a),n.data("bs.tooltip",i)),"string"==typeof e)){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"Default",get:function(){return Y}},{key:"NAME",get:function(){return M}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return $}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return K}}]),t}();o.default.fn[M]=J._jQueryInterface,o.default.fn[M].Constructor=J,o.default.fn[M].noConflict=function(){return o.default.fn[M]=W,J._jQueryInterface};var G="popover",Z=o.default.fn[G],tt=new RegExp("(^|\\s)bs-popover\\S+","g"),et=r({},J.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),nt=r({},J.DefaultType,{content:"(string|element|function)"}),it={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},ot=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n;var a=i.prototype;return a.isWithContent=function(){return this.getTitle()||this._getContent()},a.addAttachmentClass=function(t){o.default(this.getTipElement()).addClass("bs-popover-"+t)},a.getTipElement=function(){return this.tip=this.tip||o.default(this.config.template)[0],this.tip},a.setContent=function(){var t=o.default(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(".popover-body"),e),t.removeClass("fade show")},a._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},a._cleanTipClass=function(){var t=o.default(this.getTipElement()),e=t.attr("class").match(tt);null!==e&&e.length>0&&t.removeClass(e.join(""))},i._jQueryInterface=function(t){return this.each((function(){var e=o.default(this).data("bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new i(this,n),o.default(this).data("bs.popover",e)),"string"==typeof t)){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},l(i,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"Default",get:function(){return et}},{key:"NAME",get:function(){return G}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return it}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return nt}}]),i}(J);o.default.fn[G]=ot._jQueryInterface,o.default.fn[G].Constructor=ot,o.default.fn[G].noConflict=function(){return o.default.fn[G]=Z,ot._jQueryInterface};var at="scrollspy",st=o.default.fn[at],lt={offset:10,method:"auto",target:""},rt={offset:"number",method:"string",target:"(string|element)"},ut=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,o.default(this._scrollElement).on("scroll.bs.scrollspy",(function(t){return n._process(t)})),this.refresh(),this._process()}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":"position",n="auto"===this._config.method?e:this._config.method,i="position"===n?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(t){var e,a=d.getSelectorFromElement(t);if(a&&(e=document.querySelector(a)),e){var s=e.getBoundingClientRect();if(s.width||s.height)return[o.default(e)[n]().top+i,a]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},e.dispose=function(){o.default.removeData(this._element,"bs.scrollspy"),o.default(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=r({},lt,"object"==typeof t&&t?t:{})).target&&d.isElement(t.target)){var e=o.default(t.target).attr("id");e||(e=d.getUID(at),o.default(t.target).attr("id",e)),t.target="#"+e}return d.typeCheckConfig(at,t,rt),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},e._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",").map((function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'})),n=o.default([].slice.call(document.querySelectorAll(e.join(","))));n.hasClass("dropdown-item")?(n.closest(".dropdown").find(".dropdown-toggle").addClass("active"),n.addClass("active")):(n.addClass("active"),n.parents(".nav, .list-group").prev(".nav-link, .list-group-item").addClass("active"),n.parents(".nav, .list-group").prev(".nav-item").children(".nav-link").addClass("active")),o.default(this._scrollElement).trigger("activate.bs.scrollspy",{relatedTarget:t})},e._clear=function(){[].slice.call(document.querySelectorAll(this._selector)).filter((function(t){return t.classList.contains("active")})).forEach((function(t){return t.classList.remove("active")}))},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this).data("bs.scrollspy");if(n||(n=new t(this,"object"==typeof e&&e),o.default(this).data("bs.scrollspy",n)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"Default",get:function(){return lt}}]),t}();o.default(window).on("load.bs.scrollspy.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-spy="scroll"]')),e=t.length;e--;){var n=o.default(t[e]);ut._jQueryInterface.call(n,n.data())}})),o.default.fn[at]=ut._jQueryInterface,o.default.fn[at].Constructor=ut,o.default.fn[at].noConflict=function(){return o.default.fn[at]=st,ut._jQueryInterface};var dt=o.default.fn.tab,ft=function(){function t(t){this._element=t}var e=t.prototype;return e.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&o.default(this._element).hasClass("active")||o.default(this._element).hasClass("disabled"))){var e,n,i=o.default(this._element).closest(".nav, .list-group")[0],a=d.getSelectorFromElement(this._element);if(i){var s="UL"===i.nodeName||"OL"===i.nodeName?"> li > .active":".active";n=(n=o.default.makeArray(o.default(i).find(s)))[n.length-1]}var l=o.default.Event("hide.bs.tab",{relatedTarget:this._element}),r=o.default.Event("show.bs.tab",{relatedTarget:n});if(n&&o.default(n).trigger(l),o.default(this._element).trigger(r),!r.isDefaultPrevented()&&!l.isDefaultPrevented()){a&&(e=document.querySelector(a)),this._activate(this._element,i);var u=function(){var e=o.default.Event("hidden.bs.tab",{relatedTarget:t._element}),i=o.default.Event("shown.bs.tab",{relatedTarget:n});o.default(n).trigger(e),o.default(t._element).trigger(i)};e?this._activate(e,e.parentNode,u):u()}}},e.dispose=function(){o.default.removeData(this._element,"bs.tab"),this._element=null},e._activate=function(t,e,n){var i=this,a=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?o.default(e).children(".active"):o.default(e).find("> li > .active"))[0],s=n&&a&&o.default(a).hasClass("fade"),l=function(){return i._transitionComplete(t,a,n)};if(a&&s){var r=d.getTransitionDurationFromElement(a);o.default(a).removeClass("show").one(d.TRANSITION_END,l).emulateTransitionEnd(r)}else l()},e._transitionComplete=function(t,e,n){if(e){o.default(e).removeClass("active");var i=o.default(e.parentNode).find("> .dropdown-menu .active")[0];i&&o.default(i).removeClass("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(o.default(t).addClass("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),d.reflow(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&o.default(t.parentNode).hasClass("dropdown-menu")){var a=o.default(t).closest(".dropdown")[0];if(a){var s=[].slice.call(a.querySelectorAll(".dropdown-toggle"));o.default(s).addClass("active")}t.setAttribute("aria-expanded",!0)}n&&n()},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data("bs.tab");if(i||(i=new t(this),n.data("bs.tab",i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.5.3"}}]),t}();o.default(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),ft._jQueryInterface.call(o.default(this),"show")})),o.default.fn.tab=ft._jQueryInterface,o.default.fn.tab.Constructor=ft,o.default.fn.tab.noConflict=function(){return o.default.fn.tab=dt,ft._jQueryInterface};var ct=o.default.fn.toast,ht={animation:"boolean",autohide:"boolean",delay:"number"},gt={animation:!0,autohide:!0,delay:500},mt=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var e=t.prototype;return e.show=function(){var t=this,e=o.default.Event("show.bs.toast");if(o.default(this._element).trigger(e),!e.isDefaultPrevented()){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var n=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),o.default(t._element).trigger("shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),d.reflow(this._element),this._element.classList.add("showing"),this._config.animation){var i=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,n).emulateTransitionEnd(i)}else n()}},e.hide=function(){if(this._element.classList.contains("show")){var t=o.default.Event("hide.bs.toast");o.default(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},e.dispose=function(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),o.default(this._element).off("click.dismiss.bs.toast"),o.default.removeData(this._element,"bs.toast"),this._element=null,this._config=null},e._getConfig=function(t){return t=r({},gt,o.default(this._element).data(),"object"==typeof t&&t?t:{}),d.typeCheckConfig("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;o.default(this._element).on("click.dismiss.bs.toast",'[data-dismiss="toast"]',(function(){return t.hide()}))},e._close=function(){var t=this,e=function(){t._element.classList.add("hide"),o.default(t._element).trigger("hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var n=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},e._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data("bs.toast");if(i||(i=new t(this,"object"==typeof e&&e),n.data("bs.toast",i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e](this)}}))},l(t,null,[{key:"VERSION",get:function(){return"4.5.3"}},{key:"DefaultType",get:function(){return ht}},{key:"Default",get:function(){return gt}}]),t}();o.default.fn.toast=mt._jQueryInterface,o.default.fn.toast.Constructor=mt,o.default.fn.toast.noConflict=function(){return o.default.fn.toast=ct,mt._jQueryInterface},t.Alert=h,t.Button=m,t.Carousel=w,t.Collapse=D,t.Dropdown=x,t.Modal=q,t.Popover=ot,t.Scrollspy=ut,t.Tab=ft,t.Toast=mt,t.Tooltip=J,t.Util=d,Object.defineProperty(t,"__esModule",{value:!0})})); //# sourceMappingURL=bootstrap.min.js.map \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/dist/js/bootstrap.min.js.map b/npm_assets/node_modules/bootstrap/dist/js/bootstrap.min.js.map index a3e04b24c5..69c2736719 100644 --- a/npm_assets/node_modules/bootstrap/dist/js/bootstrap.min.js.map +++ b/npm_assets/node_modules/bootstrap/dist/js/bootstrap.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tools/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"names":["transitionEndEmulator","duration","_this","this","called","$","one","Util","TRANSITION_END","setTimeout","triggerTransitionEnd","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","err","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","obj","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","call","expectedTypes","value","valueType","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","fn","jquery","emulateTransitionEnd","event","special","bindType","delegateType","handle","target","is","handleObj","handler","apply","arguments","NAME","JQUERY_NO_CONFLICT","Alert","_element","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","Event","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","Button","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","classList","contains","activeElement","focus","hasAttribute","setAttribute","toggleClass","button","initialButton","inputBtn","tagName","window","buttons","slice","querySelectorAll","i","len","length","add","EVENT_KEY","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_extends","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","originalEvent","pointerType","clientX","touches","end","clearTimeout","e","move","which","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","children","addClass","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","nextElementInterval","parseInt","defaultInterval","CLASS_NAME_ACTIVE","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","scrollSize","CLASS_NAME_COLLAPSE","getBoundingClientRect","triggerArrayLength","isTransitioning","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","selectors","$target","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","offset","flip","boundary","reference","display","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","Popper","referenceElement","_getPopperConfig","body","noop","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","item","EVENT_CLICK_DATA_API","backdrop","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","forEach","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","defaultPrevented","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","modalBody","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","_this5","has","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this9","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","rect","round","left","right","innerWidth","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","_this11","uriAttrs","DefaultWhitelist","*","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","keys","_loop","el","elName","nodeName","attributeList","attributes","whitelistedAttributes","concat","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","allowedAttribute","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","container","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","DATA_KEY","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","CLASS_NAME_FADE","content","text","empty","append","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","find","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","key","$tip","tabClass","join","popperData","instance","popper","initConfigAnimation","Popover","_getContent","method","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","map","targetSelector","targetBCR","height","top","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","$link","parents","SELECTOR_NAV_LINKS","node","scrollSpys","$spy","Tab","previous","listElement","itemSelector","makeArray","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","autohide","Toast","_clearTimeout","_close"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(CLASS_NAME_SHOW)\n\n if (!$(element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(EVENT_CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n EVENT_CLICK_DATA_API,\n SELECTOR_DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]'\nconst SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n SELECTOR_DATA_TOGGLES\n )[0]\n\n if (rootElement) {\n const input = this._element.querySelector(SELECTOR_INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(SELECTOR_ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n }\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => {\n let button = event.target\n const initialButton = button\n\n if (!$(button).hasClass(CLASS_NAME_BUTTON)) {\n button = $(button).closest(SELECTOR_BUTTON)[0]\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault() // work around Firefox bug #1540995\n } else {\n const inputBtn = button.querySelector(SELECTOR_INPUT)\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault() // work around Firefox bug #1540995\n return\n }\n\n if (initialButton.tagName !== 'LABEL' || inputBtn && inputBtn.type !== 'checkbox') {\n Button._jQueryInterface.call($(button), 'toggle')\n }\n }\n })\n .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(SELECTOR_BUTTON)[0]\n $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n // ensure correct active class is set to match the controls' actual values/states\n\n // find all checkboxes/readio buttons inside data-toggle groups\n let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n const input = button.querySelector(SELECTOR_INPUT)\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // find all button toggles\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n if (button.getAttribute('aria-pressed') === 'true') {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true,\n touch : true\n}\n\nconst DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean',\n touch : 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH : 'touch',\n PEN : 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? DIRECTION_NEXT\n : DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element).on(EVENT_KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(EVENT_MOUSEENTER, (event) => this.pause(event))\n .on(EVENT_MOUSELEAVE, (event) => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = (event) => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n .on(EVENT_DRAG_START, (e) => e.preventDefault())\n\n if (this._pointerEvent) {\n $(this._element).on(EVENT_POINTERDOWN, (event) => start(event))\n $(this._element).on(EVENT_POINTERUP, (event) => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n $(this._element).on(EVENT_TOUCHSTART, (event) => start(event))\n $(this._element).on(EVENT_TOUCHMOVE, (event) => move(event))\n $(this._element).on(EVENT_TOUCHEND, (event) => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode\n ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM))\n : []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM))\n const slideEvent = $.Event(EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(CLASS_NAME_ACTIVE)\n\n $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n $(nextElement).addClass(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle : true,\n parent : ''\n}\n\nconst DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst DIMENSION_WIDTH = 'width'\nconst DIMENSION_HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter((foundElem) => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))\n .filter((elem) => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(EVENT_SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSE)\n .addClass(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = $.Event(EVENT_HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(CLASS_NAME_COLLAPSING)\n .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n $(trigger).addClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(CLASS_NAME_COLLAPSE)\n .trigger(EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(DIMENSION_WIDTH)\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n const children = [].slice.call(parent.querySelectorAll(selector))\n\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic',\n popperConfig : null\n}\n\nconst DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string',\n popperConfig : '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show(true)\n }\n\n show(usePopper = false) {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(EVENT_SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(CLASS_NAME_POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(EVENT_CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU)\n }\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT)\n ? PLACEMENT_TOPEND\n : PLACEMENT_TOP\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n $(dropdownMenu).removeClass(CLASS_NAME_SHOW)\n $(parent)\n .removeClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(CLASS_NAME_SHOW)\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))\n .filter((item) => $(item).is(':visible'))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)\n .on(`${EVENT_CLICK_DATA_API} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n}\n\nconst DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(SELECTOR_DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {\n $(this._element).one(EVENT_MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(EVENT_FOCUSIN)\n\n $(this._element).removeClass(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach((htmlElement) => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n $(document).off(EVENT_FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.defaultPrevented) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n $(this._element).off(Util.TRANSITION_END)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n .emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\n }\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, (event) => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(EVENT_RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(CLASS_NAME_FADE)\n ? CLASS_NAME_FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(EVENT_CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(EVENT_SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(EVENT_HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nfunction allowedAttribute(attr, allowedAttributeList) {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].slice.call(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].slice.call(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach((attr) => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string|function)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)',\n sanitize : 'boolean',\n sanitizeFn : '(null|function)',\n whiteList : 'object',\n popperConfig : '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n}\n\nconst Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent',\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist,\n popperConfig : null\n}\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_ARROW = '.arrow'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const shadowRoot = Util.findShadowRoot(this.element)\n const isInTheDom = $.contains(\n shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n $(tip).addClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n $element.html(content)\n } else {\n $element.text(content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: SELECTOR_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (Util.isElement(this.config.container)) {\n return $(this.config.container)\n }\n\n return $(document).find(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(eventIn, this.config.selector, (event) => this._enter(event))\n .on(eventOut, this.config.selector, (event) => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = $(this.element).data()\n\n Object.keys(dataAttributes)\n .forEach((dataAttr) => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(SELECTOR_CONTENT), content)\n\n $tip.removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset : 10,\n method : 'auto',\n target : ''\n}\n\nconst DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(EVENT_SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? METHOD_OFFSET : METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map((selector) => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN)\n .find(SELECTOR_DROPDOWN_TOGGLE)\n .addClass(CLASS_NAME_ACTIVE)\n $link.addClass(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .addClass(CLASS_NAME_ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(SELECTOR_NAV_ITEMS)\n .children(SELECTOR_NAV_LINKS)\n .addClass(CLASS_NAME_ACTIVE)\n }\n\n $(this._scrollElement).trigger(EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n [].slice.call(document.querySelectorAll(this._selector))\n .filter((node) => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach((node) => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY))\n const scrollSpysLength = scrollSpys.length\n\n for (let i = scrollSpysLength; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = ScrollSpy._jQueryInterface\n$.fn[NAME].Constructor = ScrollSpy\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = '> li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(CLASS_NAME_ACTIVE) ||\n $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(EVENT_HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL')\n ? $(container).find(SELECTOR_ACTIVE_UL)\n : $(container).children(SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && $(active).hasClass(CLASS_NAME_FADE))\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .removeClass(CLASS_NAME_SHOW)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(CLASS_NAME_ACTIVE)\n\n const dropdownChild = $(active.parentNode).find(\n SELECTOR_DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(SELECTOR_DROPDOWN)[0]\n\n if (dropdownElement) {\n const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE))\n\n $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tab._jQueryInterface\n$.fn[NAME].Constructor = Tab\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation : 'boolean',\n autohide : 'boolean',\n delay : 'number'\n}\n\nconst Default = {\n animation : true,\n autohide : true,\n delay : 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = $.Event(EVENT_SHOW)\n\n $(this._element).trigger(showEvent)\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n $(this._element).trigger(EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n Util.reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._close()\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n\n $.removeData(this._element, DATA_KEY)\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...$(this._element).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE)\n $(this._element).trigger(EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Toast._jQueryInterface\n$.fn[NAME].Constructor = Toast\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n}\n\nexport default Toast\n"]} \ No newline at end of file +{"version":3,"sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tools/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"names":["transitionEndEmulator","duration","_this","this","called","$","one","Util","TRANSITION_END","setTimeout","triggerTransitionEnd","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","_","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","obj","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","call","expectedTypes","value","valueType","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","fn","jquery","emulateTransitionEnd","event","special","bindType","delegateType","handle","target","is","handleObj","handler","apply","arguments","NAME","JQUERY_NO_CONFLICT","Alert","_element","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","Event","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","Button","shouldAvoidTriggerChange","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","classList","contains","activeElement","focus","hasAttribute","setAttribute","toggleClass","avoidTriggerChange","button","initialButton","inputBtn","tagName","window","buttons","slice","querySelectorAll","i","len","length","add","EVENT_KEY","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_extends","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","originalEvent","pointerType","clientX","touches","end","clearTimeout","e","move","which","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","children","addClass","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","nextElementInterval","parseInt","defaultInterval","CLASS_NAME_ACTIVE","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","scrollSize","CLASS_NAME_COLLAPSE","getBoundingClientRect","triggerArrayLength","isTransitioning","_getTargetFromElement","triggerArray","isOpen","currentTarget","$trigger","selectors","$target","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","offset","flip","boundary","reference","display","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","Popper","referenceElement","_getPopperConfig","body","noop","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","item","EVENT_CLICK_DATA_API","backdrop","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","forEach","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","modalBody","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","_this5","has","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this9","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","rect","round","left","right","innerWidth","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","_this11","uriAttrs","DefaultWhitelist","*","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","keys","_loop","el","elName","nodeName","attributeList","attributes","whitelistedAttributes","concat","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","allowedAttribute","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","container","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","DATA_KEY","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","CLASS_NAME_FADE","content","text","empty","append","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","find","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","key","$tip","tabClass","join","popperData","instance","popper","initConfigAnimation","Popover","_getContent","method","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","map","targetSelector","targetBCR","height","top","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","$link","parents","SELECTOR_NAV_LINKS","node","scrollSpys","$spy","Tab","previous","listElement","itemSelector","makeArray","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","$this","autohide","Toast","_clearTimeout","_close"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n\n return undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (_) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value) ?\n 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(CLASS_NAME_SHOW)\n\n if (!$(element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, event => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(EVENT_CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n EVENT_CLICK_DATA_API,\n SELECTOR_DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]'\nconst SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n this.shouldAvoidTriggerChange = false\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(SELECTOR_DATA_TOGGLES)[0]\n\n if (rootElement) {\n const input = this._element.querySelector(SELECTOR_INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(SELECTOR_ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n if (!this.shouldAvoidTriggerChange) {\n $(input).trigger('change')\n }\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config, avoidTriggerChange) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $element.data(DATA_KEY, data)\n }\n\n data.shouldAvoidTriggerChange = avoidTriggerChange\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n let button = event.target\n const initialButton = button\n\n if (!$(button).hasClass(CLASS_NAME_BUTTON)) {\n button = $(button).closest(SELECTOR_BUTTON)[0]\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault() // work around Firefox bug #1540995\n } else {\n const inputBtn = button.querySelector(SELECTOR_INPUT)\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault() // work around Firefox bug #1540995\n return\n }\n\n if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n Button._jQueryInterface.call($(button), 'toggle', initialButton.tagName === 'INPUT')\n }\n }\n })\n .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = $(event.target).closest(SELECTOR_BUTTON)[0]\n $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n // ensure correct active class is set to match the controls' actual values/states\n\n // find all checkboxes/readio buttons inside data-toggle groups\n let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n const input = button.querySelector(SELECTOR_INPUT)\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // find all button toggles\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n if (button.getAttribute('aria-pressed') === 'true') {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n const $element = $(this._element)\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($element.is(':visible') && $element.css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element).on(EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(EVENT_MOUSEENTER, event => this.pause(event))\n .on(EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n .on(EVENT_DRAG_START, e => e.preventDefault())\n\n if (this._pointerEvent) {\n $(this._element).on(EVENT_POINTERDOWN, event => start(event))\n $(this._element).on(EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n $(this._element).on(EVENT_TOUCHSTART, event => start(event))\n $(this._element).on(EVENT_TOUCHMOVE, event => move(event))\n $(this._element).on(EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) :\n []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM))\n const slideEvent = $.Event(EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(CLASS_NAME_ACTIVE)\n\n $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n $(nextElement).addClass(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst DIMENSION_WIDTH = 'width'\nconst DIMENSION_HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(EVENT_SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSE)\n .addClass(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = $.Event(EVENT_HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(CLASS_NAME_COLLAPSING)\n .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n $(trigger).addClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(CLASS_NAME_COLLAPSE)\n .trigger(EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(DIMENSION_WIDTH)\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n const children = [].slice.call(parent.querySelectorAll(selector))\n\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$element.data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show(true)\n }\n\n show(usePopper = false) {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(EVENT_SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(EVENT_CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) ?\n PLACEMENT_TOPEND :\n PLACEMENT_TOP\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this._config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n $(dropdownMenu).removeClass(CLASS_NAME_SHOW)\n $(parent)\n .removeClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(CLASS_NAME_SHOW)\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (!isActive || (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))\n .filter(item => $(item).is(':visible'))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)\n .on(`${EVENT_CLICK_DATA_API} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(SELECTOR_DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n event => this.hide(event)\n )\n\n $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {\n $(this._element).one(EVENT_MOUSEUP_DISMISS, event => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(EVENT_FOCUSIN)\n\n $(this._element).removeClass(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, event => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n $(document).off(EVENT_FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.isDefaultPrevented()) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n $(this._element).off(Util.TRANSITION_END)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n .emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\n }\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(EVENT_RESIZE, event => this.handleUpdate(event))\n } else {\n $(window).off(EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY) ?\n 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(EVENT_SHOW, showEvent => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(EVENT_HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nfunction allowedAttribute(attr, allowedAttributeList) {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].slice.call(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].slice.call(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object',\n popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist,\n popperConfig: null\n}\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_ARROW = '.arrow'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const shadowRoot = Util.findShadowRoot(this.element)\n const isInTheDom = $.contains(\n shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n $(tip).addClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n $element.html(content)\n } else {\n $element.text(content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: SELECTOR_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this.config.offset(data.offsets, this.element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (Util.isElement(this.config.container)) {\n return $(this.config.container)\n }\n\n return $(document).find(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(eventIn, this.config.selector, event => this._enter(event))\n .on(eventOut, this.config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = $(this.element).data()\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent($tip.find(SELECTOR_CONTENT), content)\n\n $tip.removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(EVENT_SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET : METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod : this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN)\n .find(SELECTOR_DROPDOWN_TOGGLE)\n .addClass(CLASS_NAME_ACTIVE)\n $link.addClass(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .addClass(CLASS_NAME_ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(SELECTOR_NAV_ITEMS)\n .children(SELECTOR_NAV_LINKS)\n .addClass(CLASS_NAME_ACTIVE)\n }\n\n $(this._scrollElement).trigger(EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n [].slice.call(document.querySelectorAll(this._selector))\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY))\n const scrollSpysLength = scrollSpys.length\n\n for (let i = scrollSpysLength; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = ScrollSpy._jQueryInterface\n$.fn[NAME].Constructor = ScrollSpy\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = '> li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(CLASS_NAME_ACTIVE) ||\n $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(EVENT_HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n $(container).find(SELECTOR_ACTIVE_UL) :\n $(container).children(SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && $(active).hasClass(CLASS_NAME_FADE))\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .removeClass(CLASS_NAME_SHOW)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(CLASS_NAME_ACTIVE)\n\n const dropdownChild = $(active.parentNode).find(\n SELECTOR_DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(SELECTOR_DROPDOWN)[0]\n\n if (dropdownElement) {\n const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE))\n\n $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tab._jQueryInterface\n$.fn[NAME].Constructor = Tab\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = $.Event(EVENT_SHOW)\n\n $(this._element).trigger(showEvent)\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n $(this._element).trigger(EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n Util.reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._close()\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n\n $.removeData(this._element, DATA_KEY)\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...$(this._element).data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE)\n $(this._element).trigger(EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Toast._jQueryInterface\n$.fn[NAME].Constructor = Toast\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n}\n\nexport default Toast\n"]} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/js/dist/alert.js b/npm_assets/node_modules/bootstrap/js/dist/alert.js index 7a443da46c..3c3b376cf2 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/alert.js +++ b/npm_assets/node_modules/bootstrap/js/dist/alert.js @@ -1,5 +1,5 @@ /*! - * Bootstrap alert.js v4.5.2 (https://getbootstrap.com/) + * Bootstrap alert.js v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -9,8 +9,10 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Alert = factory(global.jQuery, global.Util)); }(this, (function ($, Util) { 'use strict'; - $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $; - Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util; + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var $__default = /*#__PURE__*/_interopDefaultLegacy($); + var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util); function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } @@ -22,11 +24,11 @@ */ var NAME = 'alert'; - var VERSION = '4.5.2'; + var VERSION = '4.5.3'; var DATA_KEY = 'bs.alert'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; - var JQUERY_NO_CONFLICT = $.fn[NAME]; + var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME]; var SELECTOR_DISMISS = '[data-dismiss="alert"]'; var EVENT_CLOSE = "close" + EVENT_KEY; var EVENT_CLOSED = "closed" + EVENT_KEY; @@ -66,13 +68,13 @@ }; _proto.dispose = function dispose() { - $.removeData(this._element, DATA_KEY); + $__default['default'].removeData(this._element, DATA_KEY); this._element = null; } // Private ; _proto._getRootElement = function _getRootElement(element) { - var selector = Util.getSelectorFromElement(element); + var selector = Util__default['default'].getSelectorFromElement(element); var parent = false; if (selector) { @@ -80,43 +82,43 @@ } if (!parent) { - parent = $(element).closest("." + CLASS_NAME_ALERT)[0]; + parent = $__default['default'](element).closest("." + CLASS_NAME_ALERT)[0]; } return parent; }; _proto._triggerCloseEvent = function _triggerCloseEvent(element) { - var closeEvent = $.Event(EVENT_CLOSE); - $(element).trigger(closeEvent); + var closeEvent = $__default['default'].Event(EVENT_CLOSE); + $__default['default'](element).trigger(closeEvent); return closeEvent; }; _proto._removeElement = function _removeElement(element) { var _this = this; - $(element).removeClass(CLASS_NAME_SHOW); + $__default['default'](element).removeClass(CLASS_NAME_SHOW); - if (!$(element).hasClass(CLASS_NAME_FADE)) { + if (!$__default['default'](element).hasClass(CLASS_NAME_FADE)) { this._destroyElement(element); return; } - var transitionDuration = Util.getTransitionDurationFromElement(element); - $(element).one(Util.TRANSITION_END, function (event) { + var transitionDuration = Util__default['default'].getTransitionDurationFromElement(element); + $__default['default'](element).one(Util__default['default'].TRANSITION_END, function (event) { return _this._destroyElement(element, event); }).emulateTransitionEnd(transitionDuration); }; _proto._destroyElement = function _destroyElement(element) { - $(element).detach().trigger(EVENT_CLOSED).remove(); + $__default['default'](element).detach().trigger(EVENT_CLOSED).remove(); } // Static ; Alert._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var $element = $(this); + var $element = $__default['default'](this); var data = $element.data(DATA_KEY); if (!data) { @@ -156,18 +158,18 @@ */ - $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert())); + $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert())); /** * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ */ - $.fn[NAME] = Alert._jQueryInterface; - $.fn[NAME].Constructor = Alert; + $__default['default'].fn[NAME] = Alert._jQueryInterface; + $__default['default'].fn[NAME].Constructor = Alert; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; + $__default['default'].fn[NAME].noConflict = function () { + $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT; return Alert._jQueryInterface; }; diff --git a/npm_assets/node_modules/bootstrap/js/dist/alert.js.map b/npm_assets/node_modules/bootstrap/js/dist/alert.js.map index c453975a2f..bc2be9aadb 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/alert.js.map +++ b/npm_assets/node_modules/bootstrap/js/dist/alert.js.map @@ -1 +1 @@ -{"version":3,"file":"alert.js","sources":["../src/alert.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(CLASS_NAME_SHOW)\n\n if (!$(element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(EVENT_CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n EVENT_CLICK_DATA_API,\n SELECTOR_DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASS_NAME_ALERT","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","element","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","selector","Util","getSelectorFromElement","parent","document","querySelector","closest","closeEvent","Event","trigger","removeClass","hasClass","_destroyElement","transitionDuration","getTransitionDurationFromElement","one","TRANSITION_END","event","emulateTransitionEnd","detach","remove","_jQueryInterface","config","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"alert.js","sources":["../src/alert.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(CLASS_NAME_SHOW)\n\n if (!$(element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, event => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(EVENT_CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n EVENT_CLICK_DATA_API,\n SELECTOR_DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASS_NAME_ALERT","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","element","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","selector","Util","getSelectorFromElement","parent","document","querySelector","closest","closeEvent","Event","trigger","removeClass","hasClass","_destroyElement","transitionDuration","getTransitionDurationFromElement","one","TRANSITION_END","event","emulateTransitionEnd","detach","remove","_jQueryInterface","config","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/js/dist/button.js b/npm_assets/node_modules/bootstrap/js/dist/button.js index 93b0634cf5..722c7c41b6 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/button.js +++ b/npm_assets/node_modules/bootstrap/js/dist/button.js @@ -1,5 +1,5 @@ /*! - * Bootstrap button.js v4.5.2 (https://getbootstrap.com/) + * Bootstrap button.js v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -9,7 +9,9 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.jQuery)); }(this, (function ($) { 'use strict'; - $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $; + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var $__default = /*#__PURE__*/_interopDefaultLegacy($); function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } @@ -21,11 +23,11 @@ */ var NAME = 'button'; - var VERSION = '4.5.2'; + var VERSION = '4.5.3'; var DATA_KEY = 'bs.button'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; - var JQUERY_NO_CONFLICT = $.fn[NAME]; + var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME]; var CLASS_NAME_ACTIVE = 'active'; var CLASS_NAME_BUTTON = 'btn'; var CLASS_NAME_FOCUS = 'focus'; @@ -48,6 +50,7 @@ var Button = /*#__PURE__*/function () { function Button(element) { this._element = element; + this.shouldAvoidTriggerChange = false; } // Getters @@ -57,7 +60,7 @@ _proto.toggle = function toggle() { var triggerChangeEvent = true; var addAriaPressed = true; - var rootElement = $(this._element).closest(SELECTOR_DATA_TOGGLES)[0]; + var rootElement = $__default['default'](this._element).closest(SELECTOR_DATA_TOGGLES)[0]; if (rootElement) { var input = this._element.querySelector(SELECTOR_INPUT); @@ -70,7 +73,7 @@ var activeElement = rootElement.querySelector(SELECTOR_ACTIVE); if (activeElement) { - $(activeElement).removeClass(CLASS_NAME_ACTIVE); + $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE); } } } @@ -81,7 +84,9 @@ input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE); } - $(input).trigger('change'); + if (!this.shouldAvoidTriggerChange) { + $__default['default'](input).trigger('change'); + } } input.focus(); @@ -95,26 +100,29 @@ } if (triggerChangeEvent) { - $(this._element).toggleClass(CLASS_NAME_ACTIVE); + $__default['default'](this._element).toggleClass(CLASS_NAME_ACTIVE); } } }; _proto.dispose = function dispose() { - $.removeData(this._element, DATA_KEY); + $__default['default'].removeData(this._element, DATA_KEY); this._element = null; } // Static ; - Button._jQueryInterface = function _jQueryInterface(config) { + Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) { return this.each(function () { - var data = $(this).data(DATA_KEY); + var $element = $__default['default'](this); + var data = $element.data(DATA_KEY); if (!data) { data = new Button(this); - $(this).data(DATA_KEY, data); + $element.data(DATA_KEY, data); } + data.shouldAvoidTriggerChange = avoidTriggerChange; + if (config === 'toggle') { data[config](); } @@ -137,12 +145,12 @@ */ - $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) { + $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) { var button = event.target; var initialButton = button; - if (!$(button).hasClass(CLASS_NAME_BUTTON)) { - button = $(button).closest(SELECTOR_BUTTON)[0]; + if (!$__default['default'](button).hasClass(CLASS_NAME_BUTTON)) { + button = $__default['default'](button).closest(SELECTOR_BUTTON)[0]; } if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) { @@ -156,15 +164,15 @@ return; } - if (initialButton.tagName !== 'LABEL' || inputBtn && inputBtn.type !== 'checkbox') { - Button._jQueryInterface.call($(button), 'toggle'); + if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') { + Button._jQueryInterface.call($__default['default'](button), 'toggle', initialButton.tagName === 'INPUT'); } } }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) { - var button = $(event.target).closest(SELECTOR_BUTTON)[0]; - $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type)); + var button = $__default['default'](event.target).closest(SELECTOR_BUTTON)[0]; + $__default['default'](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type)); }); - $(window).on(EVENT_LOAD_DATA_API, function () { + $__default['default'](window).on(EVENT_LOAD_DATA_API, function () { // ensure correct active class is set to match the controls' actual values/states // find all checkboxes/readio buttons inside data-toggle groups var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS)); @@ -199,11 +207,11 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME] = Button._jQueryInterface; - $.fn[NAME].Constructor = Button; + $__default['default'].fn[NAME] = Button._jQueryInterface; + $__default['default'].fn[NAME].Constructor = Button; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; + $__default['default'].fn[NAME].noConflict = function () { + $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT; return Button._jQueryInterface; }; diff --git a/npm_assets/node_modules/bootstrap/js/dist/button.js.map b/npm_assets/node_modules/bootstrap/js/dist/button.js.map index e3fbc6c330..5220b0052e 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/button.js.map +++ b/npm_assets/node_modules/bootstrap/js/dist/button.js.map @@ -1 +1 @@ -{"version":3,"file":"button.js","sources":["../src/button.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]'\nconst SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n SELECTOR_DATA_TOGGLES\n )[0]\n\n if (rootElement) {\n const input = this._element.querySelector(SELECTOR_INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(SELECTOR_ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n }\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => {\n let button = event.target\n const initialButton = button\n\n if (!$(button).hasClass(CLASS_NAME_BUTTON)) {\n button = $(button).closest(SELECTOR_BUTTON)[0]\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault() // work around Firefox bug #1540995\n } else {\n const inputBtn = button.querySelector(SELECTOR_INPUT)\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault() // work around Firefox bug #1540995\n return\n }\n\n if (initialButton.tagName !== 'LABEL' || inputBtn && inputBtn.type !== 'checkbox') {\n Button._jQueryInterface.call($(button), 'toggle')\n }\n }\n })\n .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(SELECTOR_BUTTON)[0]\n $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n // ensure correct active class is set to match the controls' actual values/states\n\n // find all checkboxes/readio buttons inside data-toggle groups\n let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n const input = button.querySelector(SELECTOR_INPUT)\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // find all button toggles\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n if (button.getAttribute('aria-pressed') === 'true') {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","CLASS_NAME_ACTIVE","CLASS_NAME_BUTTON","CLASS_NAME_FOCUS","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLES","SELECTOR_DATA_TOGGLE","SELECTOR_DATA_TOGGLES_BUTTONS","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","EVENT_CLICK_DATA_API","EVENT_FOCUS_BLUR_DATA_API","EVENT_LOAD_DATA_API","Button","element","_element","toggle","triggerChangeEvent","addAriaPressed","rootElement","closest","input","querySelector","type","checked","classList","contains","activeElement","removeClass","trigger","focus","hasAttribute","setAttribute","toggleClass","dispose","removeData","_jQueryInterface","config","each","data","document","on","event","button","target","initialButton","hasClass","preventDefault","inputBtn","tagName","call","test","window","buttons","slice","querySelectorAll","i","len","length","add","remove","getAttribute","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"button.js","sources":["../src/button.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]'\nconst SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n this.shouldAvoidTriggerChange = false\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(SELECTOR_DATA_TOGGLES)[0]\n\n if (rootElement) {\n const input = this._element.querySelector(SELECTOR_INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(SELECTOR_ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n if (!this.shouldAvoidTriggerChange) {\n $(input).trigger('change')\n }\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config, avoidTriggerChange) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $element.data(DATA_KEY, data)\n }\n\n data.shouldAvoidTriggerChange = avoidTriggerChange\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n let button = event.target\n const initialButton = button\n\n if (!$(button).hasClass(CLASS_NAME_BUTTON)) {\n button = $(button).closest(SELECTOR_BUTTON)[0]\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault() // work around Firefox bug #1540995\n } else {\n const inputBtn = button.querySelector(SELECTOR_INPUT)\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault() // work around Firefox bug #1540995\n return\n }\n\n if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n Button._jQueryInterface.call($(button), 'toggle', initialButton.tagName === 'INPUT')\n }\n }\n })\n .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = $(event.target).closest(SELECTOR_BUTTON)[0]\n $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n // ensure correct active class is set to match the controls' actual values/states\n\n // find all checkboxes/readio buttons inside data-toggle groups\n let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n const input = button.querySelector(SELECTOR_INPUT)\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // find all button toggles\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n if (button.getAttribute('aria-pressed') === 'true') {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","CLASS_NAME_ACTIVE","CLASS_NAME_BUTTON","CLASS_NAME_FOCUS","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLES","SELECTOR_DATA_TOGGLE","SELECTOR_DATA_TOGGLES_BUTTONS","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","EVENT_CLICK_DATA_API","EVENT_FOCUS_BLUR_DATA_API","EVENT_LOAD_DATA_API","Button","element","_element","shouldAvoidTriggerChange","toggle","triggerChangeEvent","addAriaPressed","rootElement","closest","input","querySelector","type","checked","classList","contains","activeElement","removeClass","trigger","focus","hasAttribute","setAttribute","toggleClass","dispose","removeData","_jQueryInterface","config","avoidTriggerChange","each","$element","data","document","on","event","button","target","initialButton","hasClass","preventDefault","inputBtn","tagName","call","test","window","buttons","slice","querySelectorAll","i","len","length","add","remove","getAttribute","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/js/dist/carousel.js b/npm_assets/node_modules/bootstrap/js/dist/carousel.js index 7ae15c89a1..b9d1ec6d8b 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/carousel.js +++ b/npm_assets/node_modules/bootstrap/js/dist/carousel.js @@ -1,5 +1,5 @@ /*! - * Bootstrap carousel.js v4.5.2 (https://getbootstrap.com/) + * Bootstrap carousel.js v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -9,8 +9,10 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.jQuery, global.Util)); }(this, (function ($, Util) { 'use strict'; - $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $; - Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util; + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var $__default = /*#__PURE__*/_interopDefaultLegacy($); + var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util); function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } @@ -24,11 +26,11 @@ */ var NAME = 'carousel'; - var VERSION = '4.5.2'; + var VERSION = '4.5.3'; var DATA_KEY = 'bs.carousel'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; - var JQUERY_NO_CONFLICT = $.fn[NAME]; + var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME]; var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key @@ -125,9 +127,10 @@ }; _proto.nextWhenVisible = function nextWhenVisible() { - // Don't call next when the page isn't visible + var $element = $__default['default'](this._element); // Don't call next when the page isn't visible // or the carousel or its parent isn't visible - if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') { + + if (!document.hidden && $element.is(':visible') && $element.css('visibility') !== 'hidden') { this.next(); } }; @@ -144,7 +147,7 @@ } if (this._element.querySelector(SELECTOR_NEXT_PREV)) { - Util.triggerTransitionEnd(this._element); + Util__default['default'].triggerTransitionEnd(this._element); this.cycle(true); } @@ -179,7 +182,7 @@ } if (this._isSliding) { - $(this._element).one(EVENT_SLID, function () { + $__default['default'](this._element).one(EVENT_SLID, function () { return _this.to(index); }); return; @@ -197,8 +200,8 @@ }; _proto.dispose = function dispose() { - $(this._element).off(EVENT_KEY); - $.removeData(this._element, DATA_KEY); + $__default['default'](this._element).off(EVENT_KEY); + $__default['default'].removeData(this._element, DATA_KEY); this._items = null; this._config = null; this._element = null; @@ -212,7 +215,7 @@ _proto._getConfig = function _getConfig(config) { config = _extends({}, Default, config); - Util.typeCheckConfig(NAME, config, DefaultType); + Util__default['default'].typeCheckConfig(NAME, config, DefaultType); return config; }; @@ -240,13 +243,13 @@ var _this2 = this; if (this._config.keyboard) { - $(this._element).on(EVENT_KEYDOWN, function (event) { + $__default['default'](this._element).on(EVENT_KEYDOWN, function (event) { return _this2._keydown(event); }); } if (this._config.pause === 'hover') { - $(this._element).on(EVENT_MOUSEENTER, function (event) { + $__default['default'](this._element).on(EVENT_MOUSEENTER, function (event) { return _this2.pause(event); }).on(EVENT_MOUSELEAVE, function (event) { return _this2.cycle(event); @@ -309,27 +312,27 @@ } }; - $(this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) { + $__default['default'](this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) { return e.preventDefault(); }); if (this._pointerEvent) { - $(this._element).on(EVENT_POINTERDOWN, function (event) { + $__default['default'](this._element).on(EVENT_POINTERDOWN, function (event) { return start(event); }); - $(this._element).on(EVENT_POINTERUP, function (event) { + $__default['default'](this._element).on(EVENT_POINTERUP, function (event) { return end(event); }); this._element.classList.add(CLASS_NAME_POINTER_EVENT); } else { - $(this._element).on(EVENT_TOUCHSTART, function (event) { + $__default['default'](this._element).on(EVENT_TOUCHSTART, function (event) { return start(event); }); - $(this._element).on(EVENT_TOUCHMOVE, function (event) { + $__default['default'](this._element).on(EVENT_TOUCHMOVE, function (event) { return move(event); }); - $(this._element).on(EVENT_TOUCHEND, function (event) { + $__default['default'](this._element).on(EVENT_TOUCHEND, function (event) { return end(event); }); } @@ -381,25 +384,25 @@ var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM)); - var slideEvent = $.Event(EVENT_SLIDE, { + var slideEvent = $__default['default'].Event(EVENT_SLIDE, { relatedTarget: relatedTarget, direction: eventDirectionName, from: fromIndex, to: targetIndex }); - $(this._element).trigger(slideEvent); + $__default['default'](this._element).trigger(slideEvent); return slideEvent; }; _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) { if (this._indicatorsElement) { var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE)); - $(indicators).removeClass(CLASS_NAME_ACTIVE); + $__default['default'](indicators).removeClass(CLASS_NAME_ACTIVE); var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; if (nextIndicator) { - $(nextIndicator).addClass(CLASS_NAME_ACTIVE); + $__default['default'](nextIndicator).addClass(CLASS_NAME_ACTIVE); } } }; @@ -430,7 +433,7 @@ eventDirectionName = DIRECTION_RIGHT; } - if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) { + if (nextElement && $__default['default'](nextElement).hasClass(CLASS_NAME_ACTIVE)) { this._isSliding = false; return; } @@ -454,18 +457,18 @@ this._setActiveIndicatorElement(nextElement); - var slidEvent = $.Event(EVENT_SLID, { + var slidEvent = $__default['default'].Event(EVENT_SLID, { relatedTarget: nextElement, direction: eventDirectionName, from: activeElementIndex, to: nextElementIndex }); - if ($(this._element).hasClass(CLASS_NAME_SLIDE)) { - $(nextElement).addClass(orderClassName); - Util.reflow(nextElement); - $(activeElement).addClass(directionalClassName); - $(nextElement).addClass(directionalClassName); + if ($__default['default'](this._element).hasClass(CLASS_NAME_SLIDE)) { + $__default['default'](nextElement).addClass(orderClassName); + Util__default['default'].reflow(nextElement); + $__default['default'](activeElement).addClass(directionalClassName); + $__default['default'](nextElement).addClass(directionalClassName); var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10); if (nextElementInterval) { @@ -475,20 +478,20 @@ this._config.interval = this._config.defaultInterval || this._config.interval; } - var transitionDuration = Util.getTransitionDurationFromElement(activeElement); - $(activeElement).one(Util.TRANSITION_END, function () { - $(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(CLASS_NAME_ACTIVE); - $(activeElement).removeClass(CLASS_NAME_ACTIVE + " " + orderClassName + " " + directionalClassName); + var transitionDuration = Util__default['default'].getTransitionDurationFromElement(activeElement); + $__default['default'](activeElement).one(Util__default['default'].TRANSITION_END, function () { + $__default['default'](nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(CLASS_NAME_ACTIVE); + $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE + " " + orderClassName + " " + directionalClassName); _this4._isSliding = false; setTimeout(function () { - return $(_this4._element).trigger(slidEvent); + return $__default['default'](_this4._element).trigger(slidEvent); }, 0); }).emulateTransitionEnd(transitionDuration); } else { - $(activeElement).removeClass(CLASS_NAME_ACTIVE); - $(nextElement).addClass(CLASS_NAME_ACTIVE); + $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE); + $__default['default'](nextElement).addClass(CLASS_NAME_ACTIVE); this._isSliding = false; - $(this._element).trigger(slidEvent); + $__default['default'](this._element).trigger(slidEvent); } if (isCycling) { @@ -499,9 +502,9 @@ Carousel._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var data = $(this).data(DATA_KEY); + var data = $__default['default'](this).data(DATA_KEY); - var _config = _extends({}, Default, $(this).data()); + var _config = _extends({}, Default, $__default['default'](this).data()); if (typeof config === 'object') { _config = _extends({}, _config, config); @@ -511,7 +514,7 @@ if (!data) { data = new Carousel(this, _config); - $(this).data(DATA_KEY, data); + $__default['default'](this).data(DATA_KEY, data); } if (typeof config === 'number') { @@ -530,19 +533,19 @@ }; Carousel._dataApiClickHandler = function _dataApiClickHandler(event) { - var selector = Util.getSelectorFromElement(this); + var selector = Util__default['default'].getSelectorFromElement(this); if (!selector) { return; } - var target = $(selector)[0]; + var target = $__default['default'](selector)[0]; - if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) { + if (!target || !$__default['default'](target).hasClass(CLASS_NAME_CAROUSEL)) { return; } - var config = _extends({}, $(target).data(), $(this).data()); + var config = _extends({}, $__default['default'](target).data(), $__default['default'](this).data()); var slideIndex = this.getAttribute('data-slide-to'); @@ -550,10 +553,10 @@ config.interval = false; } - Carousel._jQueryInterface.call($(target), config); + Carousel._jQueryInterface.call($__default['default'](target), config); if (slideIndex) { - $(target).data(DATA_KEY).to(slideIndex); + $__default['default'](target).data(DATA_KEY).to(slideIndex); } event.preventDefault(); @@ -580,12 +583,12 @@ */ - $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler); - $(window).on(EVENT_LOAD_DATA_API, function () { + $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler); + $__default['default'](window).on(EVENT_LOAD_DATA_API, function () { var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE)); for (var i = 0, len = carousels.length; i < len; i++) { - var $carousel = $(carousels[i]); + var $carousel = $__default['default'](carousels[i]); Carousel._jQueryInterface.call($carousel, $carousel.data()); } @@ -596,11 +599,11 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME] = Carousel._jQueryInterface; - $.fn[NAME].Constructor = Carousel; + $__default['default'].fn[NAME] = Carousel._jQueryInterface; + $__default['default'].fn[NAME].Constructor = Carousel; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; + $__default['default'].fn[NAME].noConflict = function () { + $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT; return Carousel._jQueryInterface; }; diff --git a/npm_assets/node_modules/bootstrap/js/dist/carousel.js.map b/npm_assets/node_modules/bootstrap/js/dist/carousel.js.map index 7da124d184..f3a0921934 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/carousel.js.map +++ b/npm_assets/node_modules/bootstrap/js/dist/carousel.js.map @@ -1 +1 @@ -{"version":3,"file":"carousel.js","sources":["../src/carousel.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true,\n touch : true\n}\n\nconst DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean',\n touch : 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH : 'touch',\n PEN : 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? DIRECTION_NEXT\n : DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element).on(EVENT_KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(EVENT_MOUSEENTER, (event) => this.pause(event))\n .on(EVENT_MOUSELEAVE, (event) => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = (event) => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n .on(EVENT_DRAG_START, (e) => e.preventDefault())\n\n if (this._pointerEvent) {\n $(this._element).on(EVENT_POINTERDOWN, (event) => start(event))\n $(this._element).on(EVENT_POINTERUP, (event) => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n $(this._element).on(EVENT_TOUCHSTART, (event) => start(event))\n $(this._element).on(EVENT_TOUCHMOVE, (event) => move(event))\n $(this._element).on(EVENT_TOUCHEND, (event) => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode\n ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM))\n : []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM))\n const slideEvent = $.Event(EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(CLASS_NAME_ACTIVE)\n\n $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n $(nextElement).addClass(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API","EVENT_CLICK_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","element","config","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_element","_indicatorsElement","querySelector","_touchSupported","document","documentElement","navigator","maxTouchPoints","_pointerEvent","Boolean","window","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","is","css","prev","event","Util","triggerTransitionEnd","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","one","direction","dispose","off","removeData","typeCheckConfig","_handleSwipe","absDeltax","Math","abs","on","_keydown","_addTouchEventListeners","start","originalEvent","pointerType","toUpperCase","clientX","touches","move","end","clearTimeout","setTimeout","querySelectorAll","e","preventDefault","classList","add","test","target","tagName","which","parentNode","slice","call","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","Event","from","trigger","_setActiveIndicatorElement","indicators","removeClass","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","hasClass","isDefaultPrevented","slidEvent","reflow","nextElementInterval","parseInt","getAttribute","defaultInterval","transitionDuration","getTransitionDurationFromElement","TRANSITION_END","emulateTransitionEnd","_jQueryInterface","each","data","action","TypeError","ride","_dataApiClickHandler","selector","getSelectorFromElement","slideIndex","carousels","i","len","$carousel","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"carousel.js","sources":["../src/carousel.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n const $element = $(this._element)\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($element.is(':visible') && $element.css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element).on(EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(EVENT_MOUSEENTER, event => this.pause(event))\n .on(EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n .on(EVENT_DRAG_START, e => e.preventDefault())\n\n if (this._pointerEvent) {\n $(this._element).on(EVENT_POINTERDOWN, event => start(event))\n $(this._element).on(EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n $(this._element).on(EVENT_TOUCHSTART, event => start(event))\n $(this._element).on(EVENT_TOUCHMOVE, event => move(event))\n $(this._element).on(EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) :\n []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM))\n const slideEvent = $.Event(EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(CLASS_NAME_ACTIVE)\n\n $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n $(nextElement).addClass(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API","EVENT_CLICK_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","element","config","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_element","_indicatorsElement","querySelector","_touchSupported","document","documentElement","navigator","maxTouchPoints","_pointerEvent","Boolean","window","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","$element","hidden","is","css","prev","event","Util","triggerTransitionEnd","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","one","direction","dispose","off","removeData","typeCheckConfig","_handleSwipe","absDeltax","Math","abs","on","_keydown","_addTouchEventListeners","start","originalEvent","pointerType","toUpperCase","clientX","touches","move","end","clearTimeout","setTimeout","querySelectorAll","e","preventDefault","classList","add","test","target","tagName","which","parentNode","slice","call","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","Event","from","trigger","_setActiveIndicatorElement","indicators","removeClass","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","hasClass","isDefaultPrevented","slidEvent","reflow","nextElementInterval","parseInt","getAttribute","defaultInterval","transitionDuration","getTransitionDurationFromElement","TRANSITION_END","emulateTransitionEnd","_jQueryInterface","each","data","action","TypeError","ride","_dataApiClickHandler","selector","getSelectorFromElement","slideIndex","carousels","i","len","$carousel","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/js/dist/collapse.js b/npm_assets/node_modules/bootstrap/js/dist/collapse.js index 7f192dadc7..b5d663243c 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/collapse.js +++ b/npm_assets/node_modules/bootstrap/js/dist/collapse.js @@ -1,5 +1,5 @@ /*! - * Bootstrap collapse.js v4.5.2 (https://getbootstrap.com/) + * Bootstrap collapse.js v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -9,8 +9,10 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.jQuery, global.Util)); }(this, (function ($, Util) { 'use strict'; - $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $; - Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util; + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var $__default = /*#__PURE__*/_interopDefaultLegacy($); + var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util); function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } @@ -24,11 +26,11 @@ */ var NAME = 'collapse'; - var VERSION = '4.5.2'; + var VERSION = '4.5.3'; var DATA_KEY = 'bs.collapse'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; - var JQUERY_NO_CONFLICT = $.fn[NAME]; + var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME]; var Default = { toggle: true, parent: '' @@ -66,7 +68,7 @@ for (var i = 0, len = toggleList.length; i < len; i++) { var elem = toggleList[i]; - var selector = Util.getSelectorFromElement(elem); + var selector = Util__default['default'].getSelectorFromElement(elem); var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) { return foundElem === element; }); @@ -94,7 +96,7 @@ // Public _proto.toggle = function toggle() { - if ($(this._element).hasClass(CLASS_NAME_SHOW)) { + if ($__default['default'](this._element).hasClass(CLASS_NAME_SHOW)) { this.hide(); } else { this.show(); @@ -104,7 +106,7 @@ _proto.show = function show() { var _this = this; - if (this._isTransitioning || $(this._element).hasClass(CLASS_NAME_SHOW)) { + if (this._isTransitioning || $__default['default'](this._element).hasClass(CLASS_NAME_SHOW)) { return; } @@ -126,64 +128,64 @@ } if (actives) { - activesData = $(actives).not(this._selector).data(DATA_KEY); + activesData = $__default['default'](actives).not(this._selector).data(DATA_KEY); if (activesData && activesData._isTransitioning) { return; } } - var startEvent = $.Event(EVENT_SHOW); - $(this._element).trigger(startEvent); + var startEvent = $__default['default'].Event(EVENT_SHOW); + $__default['default'](this._element).trigger(startEvent); if (startEvent.isDefaultPrevented()) { return; } if (actives) { - Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide'); + Collapse._jQueryInterface.call($__default['default'](actives).not(this._selector), 'hide'); if (!activesData) { - $(actives).data(DATA_KEY, null); + $__default['default'](actives).data(DATA_KEY, null); } } var dimension = this._getDimension(); - $(this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING); + $__default['default'](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING); this._element.style[dimension] = 0; if (this._triggerArray.length) { - $(this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true); + $__default['default'](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true); } this.setTransitioning(true); var complete = function complete() { - $(_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW); + $__default['default'](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW); _this._element.style[dimension] = ''; _this.setTransitioning(false); - $(_this._element).trigger(EVENT_SHOWN); + $__default['default'](_this._element).trigger(EVENT_SHOWN); }; var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); var scrollSize = "scroll" + capitalizedDimension; - var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element); + $__default['default'](this._element).one(Util__default['default'].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); this._element.style[dimension] = this._element[scrollSize] + "px"; }; _proto.hide = function hide() { var _this2 = this; - if (this._isTransitioning || !$(this._element).hasClass(CLASS_NAME_SHOW)) { + if (this._isTransitioning || !$__default['default'](this._element).hasClass(CLASS_NAME_SHOW)) { return; } - var startEvent = $.Event(EVENT_HIDE); - $(this._element).trigger(startEvent); + var startEvent = $__default['default'].Event(EVENT_HIDE); + $__default['default'](this._element).trigger(startEvent); if (startEvent.isDefaultPrevented()) { return; @@ -192,20 +194,20 @@ var dimension = this._getDimension(); this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px"; - Util.reflow(this._element); - $(this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW); + Util__default['default'].reflow(this._element); + $__default['default'](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW); var triggerArrayLength = this._triggerArray.length; if (triggerArrayLength > 0) { for (var i = 0; i < triggerArrayLength; i++) { var trigger = this._triggerArray[i]; - var selector = Util.getSelectorFromElement(trigger); + var selector = Util__default['default'].getSelectorFromElement(trigger); if (selector !== null) { - var $elem = $([].slice.call(document.querySelectorAll(selector))); + var $elem = $__default['default']([].slice.call(document.querySelectorAll(selector))); if (!$elem.hasClass(CLASS_NAME_SHOW)) { - $(trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false); + $__default['default'](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false); } } } @@ -216,12 +218,12 @@ var complete = function complete() { _this2.setTransitioning(false); - $(_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN); + $__default['default'](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN); }; this._element.style[dimension] = ''; - var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element); + $__default['default'](this._element).one(Util__default['default'].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); }; _proto.setTransitioning = function setTransitioning(isTransitioning) { @@ -229,7 +231,7 @@ }; _proto.dispose = function dispose() { - $.removeData(this._element, DATA_KEY); + $__default['default'].removeData(this._element, DATA_KEY); this._config = null; this._parent = null; this._element = null; @@ -242,12 +244,12 @@ config = _extends({}, Default, config); config.toggle = Boolean(config.toggle); // Coerce string values - Util.typeCheckConfig(NAME, config, DefaultType); + Util__default['default'].typeCheckConfig(NAME, config, DefaultType); return config; }; _proto._getDimension = function _getDimension() { - var hasWidth = $(this._element).hasClass(DIMENSION_WIDTH); + var hasWidth = $__default['default'](this._element).hasClass(DIMENSION_WIDTH); return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT; }; @@ -256,7 +258,7 @@ var parent; - if (Util.isElement(this._config.parent)) { + if (Util__default['default'].isElement(this._config.parent)) { parent = this._config.parent; // It's a jQuery object if (typeof this._config.parent.jquery !== 'undefined') { @@ -268,32 +270,32 @@ var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]"; var children = [].slice.call(parent.querySelectorAll(selector)); - $(children).each(function (i, element) { + $__default['default'](children).each(function (i, element) { _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]); }); return parent; }; _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) { - var isOpen = $(element).hasClass(CLASS_NAME_SHOW); + var isOpen = $__default['default'](element).hasClass(CLASS_NAME_SHOW); if (triggerArray.length) { - $(triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen); + $__default['default'](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen); } } // Static ; Collapse._getTargetFromElement = function _getTargetFromElement(element) { - var selector = Util.getSelectorFromElement(element); + var selector = Util__default['default'].getSelectorFromElement(element); return selector ? document.querySelector(selector) : null; }; Collapse._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var $this = $(this); - var data = $this.data(DATA_KEY); + var $element = $__default['default'](this); + var data = $element.data(DATA_KEY); - var _config = _extends({}, Default, $this.data(), typeof config === 'object' && config ? config : {}); + var _config = _extends({}, Default, $element.data(), typeof config === 'object' && config ? config : {}); if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) { _config.toggle = false; @@ -301,7 +303,7 @@ if (!data) { data = new Collapse(this, _config); - $this.data(DATA_KEY, data); + $element.data(DATA_KEY, data); } if (typeof config === 'string') { @@ -335,17 +337,17 @@ */ - $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { + $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { // preventDefault only for <a> elements (which change the URL) not inside the collapsible element if (event.currentTarget.tagName === 'A') { event.preventDefault(); } - var $trigger = $(this); - var selector = Util.getSelectorFromElement(this); + var $trigger = $__default['default'](this); + var selector = Util__default['default'].getSelectorFromElement(this); var selectors = [].slice.call(document.querySelectorAll(selector)); - $(selectors).each(function () { - var $target = $(this); + $__default['default'](selectors).each(function () { + var $target = $__default['default'](this); var data = $target.data(DATA_KEY); var config = data ? 'toggle' : $trigger.data(); @@ -358,11 +360,11 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME] = Collapse._jQueryInterface; - $.fn[NAME].Constructor = Collapse; + $__default['default'].fn[NAME] = Collapse._jQueryInterface; + $__default['default'].fn[NAME].Constructor = Collapse; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; + $__default['default'].fn[NAME].noConflict = function () { + $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT; return Collapse._jQueryInterface; }; diff --git a/npm_assets/node_modules/bootstrap/js/dist/collapse.js.map b/npm_assets/node_modules/bootstrap/js/dist/collapse.js.map index 78bd82ba65..d14e4647d5 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/collapse.js.map +++ b/npm_assets/node_modules/bootstrap/js/dist/collapse.js.map @@ -1 +1 @@ -{"version":3,"file":"collapse.js","sources":["../src/collapse.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle : true,\n parent : ''\n}\n\nconst DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst DIMENSION_WIDTH = 'width'\nconst DIMENSION_HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter((foundElem) => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))\n .filter((elem) => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(EVENT_SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSE)\n .addClass(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = $.Event(EVENT_HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(CLASS_NAME_COLLAPSING)\n .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n $(trigger).addClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(CLASS_NAME_COLLAPSE)\n .trigger(EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(DIMENSION_WIDTH)\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n const children = [].slice.call(parent.querySelectorAll(selector))\n\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","Default","toggle","parent","DefaultType","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","EVENT_CLICK_DATA_API","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","DIMENSION_WIDTH","DIMENSION_HEIGHT","SELECTOR_ACTIVES","SELECTOR_DATA_TOGGLE","Collapse","element","config","_isTransitioning","_element","_config","_getConfig","_triggerArray","slice","call","document","querySelectorAll","id","toggleList","i","len","length","elem","selector","Util","getSelectorFromElement","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hasClass","hide","show","actives","activesData","getAttribute","classList","contains","not","data","startEvent","Event","trigger","isDefaultPrevented","_jQueryInterface","dimension","_getDimension","removeClass","addClass","style","attr","setTransitioning","complete","capitalizedDimension","toUpperCase","scrollSize","transitionDuration","getTransitionDurationFromElement","one","TRANSITION_END","emulateTransitionEnd","getBoundingClientRect","reflow","triggerArrayLength","$elem","isTransitioning","dispose","removeData","Boolean","typeCheckConfig","hasWidth","isElement","jquery","querySelector","children","each","_getTargetFromElement","triggerArray","isOpen","toggleClass","$this","test","TypeError","on","event","currentTarget","tagName","preventDefault","$trigger","selectors","$target","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"collapse.js","sources":["../src/collapse.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst DIMENSION_WIDTH = 'width'\nconst DIMENSION_HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(EVENT_SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSE)\n .addClass(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = $.Event(EVENT_HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(CLASS_NAME_COLLAPSING)\n .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n $(trigger).addClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(CLASS_NAME_COLLAPSE)\n .trigger(EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(DIMENSION_WIDTH)\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n const children = [].slice.call(parent.querySelectorAll(selector))\n\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$element.data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","Default","toggle","parent","DefaultType","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","EVENT_CLICK_DATA_API","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","DIMENSION_WIDTH","DIMENSION_HEIGHT","SELECTOR_ACTIVES","SELECTOR_DATA_TOGGLE","Collapse","element","config","_isTransitioning","_element","_config","_getConfig","_triggerArray","slice","call","document","querySelectorAll","id","toggleList","i","len","length","elem","selector","Util","getSelectorFromElement","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hasClass","hide","show","actives","activesData","getAttribute","classList","contains","not","data","startEvent","Event","trigger","isDefaultPrevented","_jQueryInterface","dimension","_getDimension","removeClass","addClass","style","attr","setTransitioning","complete","capitalizedDimension","toUpperCase","scrollSize","transitionDuration","getTransitionDurationFromElement","one","TRANSITION_END","emulateTransitionEnd","getBoundingClientRect","reflow","triggerArrayLength","$elem","isTransitioning","dispose","removeData","Boolean","typeCheckConfig","hasWidth","isElement","jquery","querySelector","children","each","_getTargetFromElement","triggerArray","isOpen","toggleClass","$element","test","TypeError","on","event","currentTarget","tagName","preventDefault","$trigger","selectors","$target","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/js/dist/dropdown.js b/npm_assets/node_modules/bootstrap/js/dist/dropdown.js index f4c39b5352..9ba052ef62 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/dropdown.js +++ b/npm_assets/node_modules/bootstrap/js/dist/dropdown.js @@ -1,5 +1,5 @@ /*! - * Bootstrap dropdown.js v4.5.2 (https://getbootstrap.com/) + * Bootstrap dropdown.js v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -9,9 +9,11 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.jQuery, global.Popper, global.Util)); }(this, (function ($, Popper, Util) { 'use strict'; - $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $; - Popper = Popper && Object.prototype.hasOwnProperty.call(Popper, 'default') ? Popper['default'] : Popper; - Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util; + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var $__default = /*#__PURE__*/_interopDefaultLegacy($); + var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper); + var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util); function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } @@ -25,11 +27,11 @@ */ var NAME = 'dropdown'; - var VERSION = '4.5.2'; + var VERSION = '4.5.3'; var DATA_KEY = 'bs.dropdown'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; - var JQUERY_NO_CONFLICT = $.fn[NAME]; + var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME]; var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key @@ -107,11 +109,11 @@ // Public _proto.toggle = function toggle() { - if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) { + if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED)) { return; } - var isActive = $(this._menu).hasClass(CLASS_NAME_SHOW); + var isActive = $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW); Dropdown._clearMenus(); @@ -127,18 +129,18 @@ usePopper = false; } - if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) { + if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW)) { return; } var relatedTarget = { relatedTarget: this._element }; - var showEvent = $.Event(EVENT_SHOW, relatedTarget); + var showEvent = $__default['default'].Event(EVENT_SHOW, relatedTarget); var parent = Dropdown._getParentFromElement(this._element); - $(parent).trigger(showEvent); + $__default['default'](parent).trigger(showEvent); if (showEvent.isDefaultPrevented()) { return; @@ -150,7 +152,7 @@ * Check for Popper dependency * Popper - https://popper.js.org */ - if (typeof Popper === 'undefined') { + if (typeof Popper__default['default'] === 'undefined') { throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org/)'); } @@ -158,7 +160,7 @@ if (this._config.reference === 'parent') { referenceElement = parent; - } else if (Util.isElement(this._config.reference)) { + } else if (Util__default['default'].isElement(this._config.reference)) { referenceElement = this._config.reference; // Check if it's jQuery element if (typeof this._config.reference.jquery !== 'undefined') { @@ -170,41 +172,41 @@ if (this._config.boundary !== 'scrollParent') { - $(parent).addClass(CLASS_NAME_POSITION_STATIC); + $__default['default'](parent).addClass(CLASS_NAME_POSITION_STATIC); } - this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig()); + this._popper = new Popper__default['default'](referenceElement, this._menu, this._getPopperConfig()); } // If this is a touch-enabled device we add extra // empty mouseover listeners to the body's immediate children; // only needed because of broken event delegation on iOS // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html - if ('ontouchstart' in document.documentElement && $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) { - $(document.body).children().on('mouseover', null, $.noop); + if ('ontouchstart' in document.documentElement && $__default['default'](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) { + $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop); } this._element.focus(); this._element.setAttribute('aria-expanded', true); - $(this._menu).toggleClass(CLASS_NAME_SHOW); - $(parent).toggleClass(CLASS_NAME_SHOW).trigger($.Event(EVENT_SHOWN, relatedTarget)); + $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW); + $__default['default'](parent).toggleClass(CLASS_NAME_SHOW).trigger($__default['default'].Event(EVENT_SHOWN, relatedTarget)); }; _proto.hide = function hide() { - if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) { + if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || !$__default['default'](this._menu).hasClass(CLASS_NAME_SHOW)) { return; } var relatedTarget = { relatedTarget: this._element }; - var hideEvent = $.Event(EVENT_HIDE, relatedTarget); + var hideEvent = $__default['default'].Event(EVENT_HIDE, relatedTarget); var parent = Dropdown._getParentFromElement(this._element); - $(parent).trigger(hideEvent); + $__default['default'](parent).trigger(hideEvent); if (hideEvent.isDefaultPrevented()) { return; @@ -214,13 +216,13 @@ this._popper.destroy(); } - $(this._menu).toggleClass(CLASS_NAME_SHOW); - $(parent).toggleClass(CLASS_NAME_SHOW).trigger($.Event(EVENT_HIDDEN, relatedTarget)); + $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW); + $__default['default'](parent).toggleClass(CLASS_NAME_SHOW).trigger($__default['default'].Event(EVENT_HIDDEN, relatedTarget)); }; _proto.dispose = function dispose() { - $.removeData(this._element, DATA_KEY); - $(this._element).off(EVENT_KEY); + $__default['default'].removeData(this._element, DATA_KEY); + $__default['default'](this._element).off(EVENT_KEY); this._element = null; this._menu = null; @@ -243,7 +245,7 @@ _proto._addEventListeners = function _addEventListeners() { var _this = this; - $(this._element).on(EVENT_CLICK, function (event) { + $__default['default'](this._element).on(EVENT_CLICK, function (event) { event.preventDefault(); event.stopPropagation(); @@ -252,8 +254,8 @@ }; _proto._getConfig = function _getConfig(config) { - config = _extends({}, this.constructor.Default, $(this._element).data(), config); - Util.typeCheckConfig(NAME, config, this.constructor.DefaultType); + config = _extends({}, this.constructor.Default, $__default['default'](this._element).data(), config); + Util__default['default'].typeCheckConfig(NAME, config, this.constructor.DefaultType); return config; }; @@ -270,16 +272,16 @@ }; _proto._getPlacement = function _getPlacement() { - var $parentDropdown = $(this._element.parentNode); + var $parentDropdown = $__default['default'](this._element.parentNode); var placement = PLACEMENT_BOTTOM; // Handle dropup if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) { - placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP; + placement = $__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP; } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) { placement = PLACEMENT_RIGHT; } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) { placement = PLACEMENT_LEFT; - } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) { + } else if ($__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT)) { placement = PLACEMENT_BOTTOMEND; } @@ -287,7 +289,7 @@ }; _proto._detectNavbar = function _detectNavbar() { - return $(this._element).closest('.navbar').length > 0; + return $__default['default'](this._element).closest('.navbar').length > 0; }; _proto._getOffset = function _getOffset() { @@ -333,13 +335,13 @@ Dropdown._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var data = $(this).data(DATA_KEY); + var data = $__default['default'](this).data(DATA_KEY); var _config = typeof config === 'object' ? config : null; if (!data) { data = new Dropdown(this, _config); - $(this).data(DATA_KEY, data); + $__default['default'](this).data(DATA_KEY, data); } if (typeof config === 'string') { @@ -362,7 +364,7 @@ for (var i = 0, len = toggles.length; i < len; i++) { var parent = Dropdown._getParentFromElement(toggles[i]); - var context = $(toggles[i]).data(DATA_KEY); + var context = $__default['default'](toggles[i]).data(DATA_KEY); var relatedTarget = { relatedTarget: toggles[i] }; @@ -377,16 +379,16 @@ var dropdownMenu = context._menu; - if (!$(parent).hasClass(CLASS_NAME_SHOW)) { + if (!$__default['default'](parent).hasClass(CLASS_NAME_SHOW)) { continue; } - if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) { + if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default['default'].contains(parent, event.target)) { continue; } - var hideEvent = $.Event(EVENT_HIDE, relatedTarget); - $(parent).trigger(hideEvent); + var hideEvent = $__default['default'].Event(EVENT_HIDE, relatedTarget); + $__default['default'](parent).trigger(hideEvent); if (hideEvent.isDefaultPrevented()) { continue; @@ -395,7 +397,7 @@ if ('ontouchstart' in document.documentElement) { - $(document.body).children().off('mouseover', null, $.noop); + $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop); } toggles[i].setAttribute('aria-expanded', 'false'); @@ -404,14 +406,14 @@ context._popper.destroy(); } - $(dropdownMenu).removeClass(CLASS_NAME_SHOW); - $(parent).removeClass(CLASS_NAME_SHOW).trigger($.Event(EVENT_HIDDEN, relatedTarget)); + $__default['default'](dropdownMenu).removeClass(CLASS_NAME_SHOW); + $__default['default'](parent).removeClass(CLASS_NAME_SHOW).trigger($__default['default'].Event(EVENT_HIDDEN, relatedTarget)); } }; Dropdown._getParentFromElement = function _getParentFromElement(element) { var parent; - var selector = Util.getSelectorFromElement(element); + var selector = Util__default['default'].getSelectorFromElement(element); if (selector) { parent = document.querySelector(selector); @@ -429,17 +431,17 @@ // - If key is other than escape // - If key is not up or down => not a dropdown command // - If trigger inside the menu => not a dropdown command - if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) { + if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default['default'](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) { return; } - if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) { + if (this.disabled || $__default['default'](this).hasClass(CLASS_NAME_DISABLED)) { return; } var parent = Dropdown._getParentFromElement(this); - var isActive = $(parent).hasClass(CLASS_NAME_SHOW); + var isActive = $__default['default'](parent).hasClass(CLASS_NAME_SHOW); if (!isActive && event.which === ESCAPE_KEYCODE) { return; @@ -448,17 +450,17 @@ event.preventDefault(); event.stopPropagation(); - if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) { + if (!isActive || event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE) { if (event.which === ESCAPE_KEYCODE) { - $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus'); + $__default['default'](parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus'); } - $(this).trigger('click'); + $__default['default'](this).trigger('click'); return; } var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) { - return $(item).is(':visible'); + return $__default['default'](item).is(':visible'); }); if (items.length === 0) { @@ -510,11 +512,11 @@ */ - $(document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API + " " + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { + $__default['default'](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API + " " + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { event.preventDefault(); event.stopPropagation(); - Dropdown._jQueryInterface.call($(this), 'toggle'); + Dropdown._jQueryInterface.call($__default['default'](this), 'toggle'); }).on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) { e.stopPropagation(); }); @@ -524,11 +526,11 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME] = Dropdown._jQueryInterface; - $.fn[NAME].Constructor = Dropdown; + $__default['default'].fn[NAME] = Dropdown._jQueryInterface; + $__default['default'].fn[NAME].Constructor = Dropdown; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; + $__default['default'].fn[NAME].noConflict = function () { + $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT; return Dropdown._jQueryInterface; }; diff --git a/npm_assets/node_modules/bootstrap/js/dist/dropdown.js.map b/npm_assets/node_modules/bootstrap/js/dist/dropdown.js.map index b91e216aea..a033a2d4a5 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/dropdown.js.map +++ b/npm_assets/node_modules/bootstrap/js/dist/dropdown.js.map @@ -1 +1 @@ -{"version":3,"file":"dropdown.js","sources":["../src/dropdown.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic',\n popperConfig : null\n}\n\nconst DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string',\n popperConfig : '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show(true)\n }\n\n show(usePopper = false) {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(EVENT_SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(CLASS_NAME_POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(EVENT_CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU)\n }\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT)\n ? PLACEMENT_TOPEND\n : PLACEMENT_TOP\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n $(dropdownMenu).removeClass(CLASS_NAME_SHOW)\n $(parent)\n .removeClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(CLASS_NAME_SHOW)\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))\n .filter((item) => $(item).is(':visible'))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)\n .on(`${EVENT_CLICK_DATA_API} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","RegExp","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK","EVENT_CLICK_DATA_API","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_SHOW","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_POSITION_STATIC","SELECTOR_DATA_TOGGLE","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default","offset","flip","boundary","reference","display","popperConfig","DefaultType","Dropdown","element","config","_element","_popper","_config","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","toggle","disabled","hasClass","isActive","_clearMenus","show","usePopper","relatedTarget","showEvent","Event","parent","_getParentFromElement","trigger","isDefaultPrevented","Popper","TypeError","referenceElement","Util","isElement","jquery","addClass","_getPopperConfig","document","documentElement","closest","length","body","children","on","noop","focus","setAttribute","toggleClass","hide","hideEvent","destroy","dispose","removeData","off","update","scheduleUpdate","event","preventDefault","stopPropagation","constructor","data","typeCheckConfig","querySelector","_getPlacement","$parentDropdown","parentNode","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_jQueryInterface","each","which","type","toggles","slice","call","querySelectorAll","i","len","context","clickEvent","dropdownMenu","test","target","tagName","contains","removeClass","selector","getSelectorFromElement","_dataApiKeydownHandler","items","filter","item","is","index","indexOf","e","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dropdown.js","sources":["../src/dropdown.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show(true)\n }\n\n show(usePopper = false) {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(EVENT_SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(EVENT_CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) ?\n PLACEMENT_TOPEND :\n PLACEMENT_TOP\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this._config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n $(dropdownMenu).removeClass(CLASS_NAME_SHOW)\n $(parent)\n .removeClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(CLASS_NAME_SHOW)\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (!isActive || (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))\n .filter(item => $(item).is(':visible'))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)\n .on(`${EVENT_CLICK_DATA_API} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","RegExp","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK","EVENT_CLICK_DATA_API","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_SHOW","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_POSITION_STATIC","SELECTOR_DATA_TOGGLE","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default","offset","flip","boundary","reference","display","popperConfig","DefaultType","Dropdown","element","config","_element","_popper","_config","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","toggle","disabled","hasClass","isActive","_clearMenus","show","usePopper","relatedTarget","showEvent","Event","parent","_getParentFromElement","trigger","isDefaultPrevented","Popper","TypeError","referenceElement","Util","isElement","jquery","addClass","_getPopperConfig","document","documentElement","closest","length","body","children","on","noop","focus","setAttribute","toggleClass","hide","hideEvent","destroy","dispose","removeData","off","update","scheduleUpdate","event","preventDefault","stopPropagation","constructor","data","typeCheckConfig","querySelector","_getPlacement","$parentDropdown","parentNode","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_jQueryInterface","each","which","type","toggles","slice","call","querySelectorAll","i","len","context","clickEvent","dropdownMenu","test","target","tagName","contains","removeClass","selector","getSelectorFromElement","_dataApiKeydownHandler","items","filter","item","is","index","indexOf","e","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/js/dist/index.js b/npm_assets/node_modules/bootstrap/js/dist/index.js index 60a6276e2f..d209db97be 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/index.js +++ b/npm_assets/node_modules/bootstrap/js/dist/index.js @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.4.0): index.js + * Bootstrap (v4.5.3): index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ @@ -20,4 +20,3 @@ throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0'); } })($); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/js/dist/index.js.map b/npm_assets/node_modules/bootstrap/js/dist/index.js.map deleted file mode 100644 index cbf703361f..0000000000 --- a/npm_assets/node_modules/bootstrap/js/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.js"],"names":["$","TypeError","version","fn","jquery","split","minMajor","ltMajor","minMinor","minPatch","maxMajor","Error"],"mappings":"AAaA;;;;;;AAOA,CAAC,UAACA,CAAD,EAAO;AACN,MAAI,OAAOA,CAAP,KAAa,WAAjB,EAA8B;AAC5B,UAAM,IAAIC,SAAJ,CAAc,kGAAd,CAAN;AACD;;AAED,MAAMC,UAAUF,EAAEG,EAAF,CAAKC,MAAL,CAAYC,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,EAA0BA,KAA1B,CAAgC,GAAhC,CAAhB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,UAAU,CAAhB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,WAAW,CAAjB;;AAEA,MAAIR,QAAQ,CAAR,IAAaK,OAAb,IAAwBL,QAAQ,CAAR,IAAaM,QAArC,IAAiDN,QAAQ,CAAR,MAAeI,QAAf,IAA2BJ,QAAQ,CAAR,MAAeM,QAA1C,IAAsDN,QAAQ,CAAR,IAAaO,QAApH,IAAgIP,QAAQ,CAAR,KAAcQ,QAAlJ,EAA4J;AAC1J,UAAM,IAAIC,KAAJ,CAAU,8EAAV,CAAN;AACD;AACF,CAfD,EAeGX,CAfH","sourcesContent":["import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.2): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"],"file":"index.js"} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/js/dist/modal.js b/npm_assets/node_modules/bootstrap/js/dist/modal.js index c808df1915..92a9c77b67 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/modal.js +++ b/npm_assets/node_modules/bootstrap/js/dist/modal.js @@ -1,5 +1,5 @@ /*! - * Bootstrap modal.js v4.5.2 (https://getbootstrap.com/) + * Bootstrap modal.js v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -9,8 +9,10 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.jQuery, global.Util)); }(this, (function ($, Util) { 'use strict'; - $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $; - Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util; + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var $__default = /*#__PURE__*/_interopDefaultLegacy($); + var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util); function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } @@ -24,11 +26,11 @@ */ var NAME = 'modal'; - var VERSION = '4.5.2'; + var VERSION = '4.5.3'; var DATA_KEY = 'bs.modal'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; - var JQUERY_NO_CONFLICT = $.fn[NAME]; + var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME]; var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key var Default = { @@ -102,14 +104,14 @@ return; } - if ($(this._element).hasClass(CLASS_NAME_FADE)) { + if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE)) { this._isTransitioning = true; } - var showEvent = $.Event(EVENT_SHOW, { + var showEvent = $__default['default'].Event(EVENT_SHOW, { relatedTarget: relatedTarget }); - $(this._element).trigger(showEvent); + $__default['default'](this._element).trigger(showEvent); if (this._isShown || showEvent.isDefaultPrevented()) { return; @@ -127,12 +129,12 @@ this._setResizeEvent(); - $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) { + $__default['default'](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) { return _this.hide(event); }); - $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () { - $(_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) { - if ($(event.target).is(_this._element)) { + $__default['default'](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () { + $__default['default'](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) { + if ($__default['default'](event.target).is(_this._element)) { _this._ignoreBackdropClick = true; } }); @@ -154,15 +156,15 @@ return; } - var hideEvent = $.Event(EVENT_HIDE); - $(this._element).trigger(hideEvent); + var hideEvent = $__default['default'].Event(EVENT_HIDE); + $__default['default'](this._element).trigger(hideEvent); if (!this._isShown || hideEvent.isDefaultPrevented()) { return; } this._isShown = false; - var transition = $(this._element).hasClass(CLASS_NAME_FADE); + var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE); if (transition) { this._isTransitioning = true; @@ -172,14 +174,14 @@ this._setResizeEvent(); - $(document).off(EVENT_FOCUSIN); - $(this._element).removeClass(CLASS_NAME_SHOW); - $(this._element).off(EVENT_CLICK_DISMISS); - $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS); + $__default['default'](document).off(EVENT_FOCUSIN); + $__default['default'](this._element).removeClass(CLASS_NAME_SHOW); + $__default['default'](this._element).off(EVENT_CLICK_DISMISS); + $__default['default'](this._dialog).off(EVENT_MOUSEDOWN_DISMISS); if (transition) { - var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $(this._element).one(Util.TRANSITION_END, function (event) { + var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element); + $__default['default'](this._element).one(Util__default['default'].TRANSITION_END, function (event) { return _this2._hideModal(event); }).emulateTransitionEnd(transitionDuration); } else { @@ -189,7 +191,7 @@ _proto.dispose = function dispose() { [window, this._element, this._dialog].forEach(function (htmlElement) { - return $(htmlElement).off(EVENT_KEY); + return $__default['default'](htmlElement).off(EVENT_KEY); }); /** * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API` @@ -197,8 +199,8 @@ * It will remove `EVENT_CLICK_DATA_API` event that should remain */ - $(document).off(EVENT_FOCUSIN); - $.removeData(this._element, DATA_KEY); + $__default['default'](document).off(EVENT_FOCUSIN); + $__default['default'].removeData(this._element, DATA_KEY); this._config = null; this._element = null; this._dialog = null; @@ -217,7 +219,7 @@ _proto._getConfig = function _getConfig(config) { config = _extends({}, Default, config); - Util.typeCheckConfig(NAME, config, DefaultType); + Util__default['default'].typeCheckConfig(NAME, config, DefaultType); return config; }; @@ -225,10 +227,10 @@ var _this3 = this; if (this._config.backdrop === 'static') { - var hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED); - $(this._element).trigger(hideEventPrevented); + var hideEventPrevented = $__default['default'].Event(EVENT_HIDE_PREVENTED); + $__default['default'](this._element).trigger(hideEventPrevented); - if (hideEventPrevented.defaultPrevented) { + if (hideEventPrevented.isDefaultPrevented()) { return; } @@ -240,13 +242,13 @@ this._element.classList.add(CLASS_NAME_STATIC); - var modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog); - $(this._element).off(Util.TRANSITION_END); - $(this._element).one(Util.TRANSITION_END, function () { + var modalTransitionDuration = Util__default['default'].getTransitionDurationFromElement(this._dialog); + $__default['default'](this._element).off(Util__default['default'].TRANSITION_END); + $__default['default'](this._element).one(Util__default['default'].TRANSITION_END, function () { _this3._element.classList.remove(CLASS_NAME_STATIC); if (!isModalOverflowing) { - $(_this3._element).one(Util.TRANSITION_END, function () { + $__default['default'](_this3._element).one(Util__default['default'].TRANSITION_END, function () { _this3._element.style.overflowY = ''; }).emulateTransitionEnd(_this3._element, modalTransitionDuration); } @@ -261,7 +263,7 @@ _proto._showElement = function _showElement(relatedTarget) { var _this4 = this; - var transition = $(this._element).hasClass(CLASS_NAME_FADE); + var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE); var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null; if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { @@ -277,23 +279,23 @@ this._element.setAttribute('role', 'dialog'); - if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) { + if ($__default['default'](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) { modalBody.scrollTop = 0; } else { this._element.scrollTop = 0; } if (transition) { - Util.reflow(this._element); + Util__default['default'].reflow(this._element); } - $(this._element).addClass(CLASS_NAME_SHOW); + $__default['default'](this._element).addClass(CLASS_NAME_SHOW); if (this._config.focus) { this._enforceFocus(); } - var shownEvent = $.Event(EVENT_SHOWN, { + var shownEvent = $__default['default'].Event(EVENT_SHOWN, { relatedTarget: relatedTarget }); @@ -303,12 +305,12 @@ } _this4._isTransitioning = false; - $(_this4._element).trigger(shownEvent); + $__default['default'](_this4._element).trigger(shownEvent); }; if (transition) { - var transitionDuration = Util.getTransitionDurationFromElement(this._dialog); - $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration); + var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._dialog); + $__default['default'](this._dialog).one(Util__default['default'].TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration); } else { transitionComplete(); } @@ -317,9 +319,9 @@ _proto._enforceFocus = function _enforceFocus() { var _this5 = this; - $(document).off(EVENT_FOCUSIN) // Guard against infinite focus loop + $__default['default'](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop .on(EVENT_FOCUSIN, function (event) { - if (document !== event.target && _this5._element !== event.target && $(_this5._element).has(event.target).length === 0) { + if (document !== event.target && _this5._element !== event.target && $__default['default'](_this5._element).has(event.target).length === 0) { _this5._element.focus(); } }); @@ -329,7 +331,7 @@ var _this6 = this; if (this._isShown) { - $(this._element).on(EVENT_KEYDOWN_DISMISS, function (event) { + $__default['default'](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) { if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE) { event.preventDefault(); @@ -339,7 +341,7 @@ } }); } else if (!this._isShown) { - $(this._element).off(EVENT_KEYDOWN_DISMISS); + $__default['default'](this._element).off(EVENT_KEYDOWN_DISMISS); } }; @@ -347,11 +349,11 @@ var _this7 = this; if (this._isShown) { - $(window).on(EVENT_RESIZE, function (event) { + $__default['default'](window).on(EVENT_RESIZE, function (event) { return _this7.handleUpdate(event); }); } else { - $(window).off(EVENT_RESIZE); + $__default['default'](window).off(EVENT_RESIZE); } }; @@ -369,19 +371,19 @@ this._isTransitioning = false; this._showBackdrop(function () { - $(document.body).removeClass(CLASS_NAME_OPEN); + $__default['default'](document.body).removeClass(CLASS_NAME_OPEN); _this8._resetAdjustments(); _this8._resetScrollbar(); - $(_this8._element).trigger(EVENT_HIDDEN); + $__default['default'](_this8._element).trigger(EVENT_HIDDEN); }); }; _proto._removeBackdrop = function _removeBackdrop() { if (this._backdrop) { - $(this._backdrop).remove(); + $__default['default'](this._backdrop).remove(); this._backdrop = null; } }; @@ -389,7 +391,7 @@ _proto._showBackdrop = function _showBackdrop(callback) { var _this9 = this; - var animate = $(this._element).hasClass(CLASS_NAME_FADE) ? CLASS_NAME_FADE : ''; + var animate = $__default['default'](this._element).hasClass(CLASS_NAME_FADE) ? CLASS_NAME_FADE : ''; if (this._isShown && this._config.backdrop) { this._backdrop = document.createElement('div'); @@ -399,8 +401,8 @@ this._backdrop.classList.add(animate); } - $(this._backdrop).appendTo(document.body); - $(this._element).on(EVENT_CLICK_DISMISS, function (event) { + $__default['default'](this._backdrop).appendTo(document.body); + $__default['default'](this._element).on(EVENT_CLICK_DISMISS, function (event) { if (_this9._ignoreBackdropClick) { _this9._ignoreBackdropClick = false; return; @@ -414,10 +416,10 @@ }); if (animate) { - Util.reflow(this._backdrop); + Util__default['default'].reflow(this._backdrop); } - $(this._backdrop).addClass(CLASS_NAME_SHOW); + $__default['default'](this._backdrop).addClass(CLASS_NAME_SHOW); if (!callback) { return; @@ -428,10 +430,10 @@ return; } - var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop); - $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration); + var backdropTransitionDuration = Util__default['default'].getTransitionDurationFromElement(this._backdrop); + $__default['default'](this._backdrop).one(Util__default['default'].TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration); } else if (!this._isShown && this._backdrop) { - $(this._backdrop).removeClass(CLASS_NAME_SHOW); + $__default['default'](this._backdrop).removeClass(CLASS_NAME_SHOW); var callbackRemove = function callbackRemove() { _this9._removeBackdrop(); @@ -441,10 +443,10 @@ } }; - if ($(this._element).hasClass(CLASS_NAME_FADE)) { - var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop); + if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE)) { + var _backdropTransitionDuration = Util__default['default'].getTransitionDurationFromElement(this._backdrop); - $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration); + $__default['default'](this._backdrop).one(Util__default['default'].TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration); } else { callbackRemove(); } @@ -489,46 +491,46 @@ var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT)); var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding - $(fixedContent).each(function (index, element) { + $__default['default'](fixedContent).each(function (index, element) { var actualPadding = element.style.paddingRight; - var calculatedPadding = $(element).css('padding-right'); - $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px"); + var calculatedPadding = $__default['default'](element).css('padding-right'); + $__default['default'](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px"); }); // Adjust sticky content margin - $(stickyContent).each(function (index, element) { + $__default['default'](stickyContent).each(function (index, element) { var actualMargin = element.style.marginRight; - var calculatedMargin = $(element).css('margin-right'); - $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px"); + var calculatedMargin = $__default['default'](element).css('margin-right'); + $__default['default'](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px"); }); // Adjust body padding var actualPadding = document.body.style.paddingRight; - var calculatedPadding = $(document.body).css('padding-right'); - $(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px"); + var calculatedPadding = $__default['default'](document.body).css('padding-right'); + $__default['default'](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px"); } - $(document.body).addClass(CLASS_NAME_OPEN); + $__default['default'](document.body).addClass(CLASS_NAME_OPEN); }; _proto._resetScrollbar = function _resetScrollbar() { // Restore fixed content padding var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT)); - $(fixedContent).each(function (index, element) { - var padding = $(element).data('padding-right'); - $(element).removeData('padding-right'); + $__default['default'](fixedContent).each(function (index, element) { + var padding = $__default['default'](element).data('padding-right'); + $__default['default'](element).removeData('padding-right'); element.style.paddingRight = padding ? padding : ''; }); // Restore sticky content var elements = [].slice.call(document.querySelectorAll("" + SELECTOR_STICKY_CONTENT)); - $(elements).each(function (index, element) { - var margin = $(element).data('margin-right'); + $__default['default'](elements).each(function (index, element) { + var margin = $__default['default'](element).data('margin-right'); if (typeof margin !== 'undefined') { - $(element).css('margin-right', margin).removeData('margin-right'); + $__default['default'](element).css('margin-right', margin).removeData('margin-right'); } }); // Restore body padding - var padding = $(document.body).data('padding-right'); - $(document.body).removeData('padding-right'); + var padding = $__default['default'](document.body).data('padding-right'); + $__default['default'](document.body).removeData('padding-right'); document.body.style.paddingRight = padding ? padding : ''; }; @@ -545,13 +547,13 @@ Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) { return this.each(function () { - var data = $(this).data(DATA_KEY); + var data = $__default['default'](this).data(DATA_KEY); - var _config = _extends({}, Default, $(this).data(), typeof config === 'object' && config ? config : {}); + var _config = _extends({}, Default, $__default['default'](this).data(), typeof config === 'object' && config ? config : {}); if (!data) { data = new Modal(this, _config); - $(this).data(DATA_KEY, data); + $__default['default'](this).data(DATA_KEY, data); } if (typeof config === 'string') { @@ -587,36 +589,36 @@ */ - $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { + $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { var _this11 = this; var target; - var selector = Util.getSelectorFromElement(this); + var selector = Util__default['default'].getSelectorFromElement(this); if (selector) { target = document.querySelector(selector); } - var config = $(target).data(DATA_KEY) ? 'toggle' : _extends({}, $(target).data(), $(this).data()); + var config = $__default['default'](target).data(DATA_KEY) ? 'toggle' : _extends({}, $__default['default'](target).data(), $__default['default'](this).data()); if (this.tagName === 'A' || this.tagName === 'AREA') { event.preventDefault(); } - var $target = $(target).one(EVENT_SHOW, function (showEvent) { + var $target = $__default['default'](target).one(EVENT_SHOW, function (showEvent) { if (showEvent.isDefaultPrevented()) { // Only register focus restorer if modal will actually get shown return; } $target.one(EVENT_HIDDEN, function () { - if ($(_this11).is(':visible')) { + if ($__default['default'](_this11).is(':visible')) { _this11.focus(); } }); }); - Modal._jQueryInterface.call($(target), config, this); + Modal._jQueryInterface.call($__default['default'](target), config, this); }); /** * ------------------------------------------------------------------------ @@ -624,11 +626,11 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME] = Modal._jQueryInterface; - $.fn[NAME].Constructor = Modal; + $__default['default'].fn[NAME] = Modal._jQueryInterface; + $__default['default'].fn[NAME].Constructor = Modal; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; + $__default['default'].fn[NAME].noConflict = function () { + $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT; return Modal._jQueryInterface; }; diff --git a/npm_assets/node_modules/bootstrap/js/dist/modal.js.map b/npm_assets/node_modules/bootstrap/js/dist/modal.js.map index e82c753194..5c13b2e88a 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/modal.js.map +++ b/npm_assets/node_modules/bootstrap/js/dist/modal.js.map @@ -1 +1 @@ -{"version":3,"file":"modal.js","sources":["../src/modal.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n}\n\nconst DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(SELECTOR_DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {\n $(this._element).one(EVENT_MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(EVENT_FOCUSIN)\n\n $(this._element).removeClass(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach((htmlElement) => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n $(document).off(EVENT_FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.defaultPrevented) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n $(this._element).off(Util.TRANSITION_END)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n .emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\n }\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, (event) => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(EVENT_RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(CLASS_NAME_FADE)\n ? CLASS_NAME_FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(EVENT_CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(EVENT_SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(EVENT_HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","ESCAPE_KEYCODE","Default","backdrop","keyboard","focus","show","DefaultType","EVENT_HIDE","EVENT_HIDE_PREVENTED","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_SHOW","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_TOGGLE","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","element","config","_config","_getConfig","_element","_dialog","querySelector","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_isTransitioning","_scrollbarWidth","toggle","relatedTarget","hide","hasClass","showEvent","Event","trigger","isDefaultPrevented","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","on","event","one","target","is","_showBackdrop","_showElement","preventDefault","hideEvent","transition","document","off","removeClass","transitionDuration","Util","getTransitionDurationFromElement","TRANSITION_END","_hideModal","emulateTransitionEnd","dispose","window","forEach","htmlElement","removeData","handleUpdate","typeCheckConfig","_triggerBackdropTransition","hideEventPrevented","defaultPrevented","isModalOverflowing","scrollHeight","documentElement","clientHeight","style","overflowY","classList","add","modalTransitionDuration","remove","modalBody","parentNode","nodeType","Node","ELEMENT_NODE","body","appendChild","display","removeAttribute","setAttribute","scrollTop","reflow","addClass","_enforceFocus","shownEvent","transitionComplete","has","length","which","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","createElement","className","appendTo","currentTarget","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","rect","getBoundingClientRect","Math","round","left","right","innerWidth","_getScrollbarWidth","fixedContent","slice","call","querySelectorAll","stickyContent","each","index","actualPadding","calculatedPadding","css","data","parseFloat","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","_jQueryInterface","TypeError","selector","getSelectorFromElement","tagName","$target","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"modal.js","sources":["../src/modal.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(SELECTOR_DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n event => this.hide(event)\n )\n\n $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {\n $(this._element).one(EVENT_MOUSEUP_DISMISS, event => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(EVENT_FOCUSIN)\n\n $(this._element).removeClass(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, event => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n $(document).off(EVENT_FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.isDefaultPrevented()) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n $(this._element).off(Util.TRANSITION_END)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n .emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\n }\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(EVENT_RESIZE, event => this.handleUpdate(event))\n } else {\n $(window).off(EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY) ?\n 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(EVENT_SHOW, showEvent => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(EVENT_HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","ESCAPE_KEYCODE","Default","backdrop","keyboard","focus","show","DefaultType","EVENT_HIDE","EVENT_HIDE_PREVENTED","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_SHOW","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_TOGGLE","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","element","config","_config","_getConfig","_element","_dialog","querySelector","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_isTransitioning","_scrollbarWidth","toggle","relatedTarget","hide","hasClass","showEvent","Event","trigger","isDefaultPrevented","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","on","event","one","target","is","_showBackdrop","_showElement","preventDefault","hideEvent","transition","document","off","removeClass","transitionDuration","Util","getTransitionDurationFromElement","TRANSITION_END","_hideModal","emulateTransitionEnd","dispose","window","forEach","htmlElement","removeData","handleUpdate","typeCheckConfig","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","scrollHeight","documentElement","clientHeight","style","overflowY","classList","add","modalTransitionDuration","remove","modalBody","parentNode","nodeType","Node","ELEMENT_NODE","body","appendChild","display","removeAttribute","setAttribute","scrollTop","reflow","addClass","_enforceFocus","shownEvent","transitionComplete","has","length","which","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","createElement","className","appendTo","currentTarget","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","rect","getBoundingClientRect","Math","round","left","right","innerWidth","_getScrollbarWidth","fixedContent","slice","call","querySelectorAll","stickyContent","each","index","actualPadding","calculatedPadding","css","data","parseFloat","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","_jQueryInterface","TypeError","selector","getSelectorFromElement","tagName","$target","Constructor","noConflict"],"mappings":";;;;;;;;;;;;;;;;;;;;;EAUA;;;;;;EAMA,IAAMA,IAAI,GAAG,OAAb;EACA,IAAMC,OAAO,GAAG,OAAhB;EACA,IAAMC,QAAQ,GAAG,UAAjB;EACA,IAAMC,SAAS,SAAOD,QAAtB;EACA,IAAME,YAAY,GAAG,WAArB;EACA,IAAMC,kBAAkB,GAAGC,qBAAC,CAACC,EAAF,CAAKP,IAAL,CAA3B;EACA,IAAMQ,cAAc,GAAG,EAAvB;;EAEA,IAAMC,OAAO,GAAG;EACdC,EAAAA,QAAQ,EAAE,IADI;EAEdC,EAAAA,QAAQ,EAAE,IAFI;EAGdC,EAAAA,KAAK,EAAE,IAHO;EAIdC,EAAAA,IAAI,EAAE;EAJQ,CAAhB;EAOA,IAAMC,WAAW,GAAG;EAClBJ,EAAAA,QAAQ,EAAE,kBADQ;EAElBC,EAAAA,QAAQ,EAAE,SAFQ;EAGlBC,EAAAA,KAAK,EAAE,SAHW;EAIlBC,EAAAA,IAAI,EAAE;EAJY,CAApB;EAOA,IAAME,UAAU,YAAUZ,SAA1B;EACA,IAAMa,oBAAoB,qBAAmBb,SAA7C;EACA,IAAMc,YAAY,cAAYd,SAA9B;EACA,IAAMe,UAAU,YAAUf,SAA1B;EACA,IAAMgB,WAAW,aAAWhB,SAA5B;EACA,IAAMiB,aAAa,eAAajB,SAAhC;EACA,IAAMkB,YAAY,cAAYlB,SAA9B;EACA,IAAMmB,mBAAmB,qBAAmBnB,SAA5C;EACA,IAAMoB,qBAAqB,uBAAqBpB,SAAhD;EACA,IAAMqB,qBAAqB,uBAAqBrB,SAAhD;EACA,IAAMsB,uBAAuB,yBAAuBtB,SAApD;EACA,IAAMuB,oBAAoB,aAAWvB,SAAX,GAAuBC,YAAjD;EAEA,IAAMuB,qBAAqB,GAAG,yBAA9B;EACA,IAAMC,6BAA6B,GAAG,yBAAtC;EACA,IAAMC,mBAAmB,GAAG,gBAA5B;EACA,IAAMC,eAAe,GAAG,YAAxB;EACA,IAAMC,eAAe,GAAG,MAAxB;EACA,IAAMC,eAAe,GAAG,MAAxB;EACA,IAAMC,iBAAiB,GAAG,cAA1B;EAEA,IAAMC,eAAe,GAAG,eAAxB;EACA,IAAMC,mBAAmB,GAAG,aAA5B;EACA,IAAMC,oBAAoB,GAAG,uBAA7B;EACA,IAAMC,qBAAqB,GAAG,wBAA9B;EACA,IAAMC,sBAAsB,GAAG,mDAA/B;EACA,IAAMC,uBAAuB,GAAG,aAAhC;EAEA;;;;;;MAMMC;EACJ,iBAAYC,OAAZ,EAAqBC,MAArB,EAA6B;EAC3B,SAAKC,OAAL,GAAe,KAAKC,UAAL,CAAgBF,MAAhB,CAAf;EACA,SAAKG,QAAL,GAAgBJ,OAAhB;EACA,SAAKK,OAAL,GAAeL,OAAO,CAACM,aAAR,CAAsBb,eAAtB,CAAf;EACA,SAAKc,SAAL,GAAiB,IAAjB;EACA,SAAKC,QAAL,GAAgB,KAAhB;EACA,SAAKC,kBAAL,GAA0B,KAA1B;EACA,SAAKC,oBAAL,GAA4B,KAA5B;EACA,SAAKC,gBAAL,GAAwB,KAAxB;EACA,SAAKC,eAAL,GAAuB,CAAvB;EACD;;;;;EAYD;WAEAC,SAAA,gBAAOC,aAAP,EAAsB;EACpB,WAAO,KAAKN,QAAL,GAAgB,KAAKO,IAAL,EAAhB,GAA8B,KAAK3C,IAAL,CAAU0C,aAAV,CAArC;EACD;;WAED1C,OAAA,cAAK0C,aAAL,EAAoB;EAAA;;EAClB,QAAI,KAAKN,QAAL,IAAiB,KAAKG,gBAA1B,EAA4C;EAC1C;EACD;;EAED,QAAI9C,qBAAC,CAAC,KAAKuC,QAAN,CAAD,CAAiBY,QAAjB,CAA0B1B,eAA1B,CAAJ,EAAgD;EAC9C,WAAKqB,gBAAL,GAAwB,IAAxB;EACD;;EAED,QAAMM,SAAS,GAAGpD,qBAAC,CAACqD,KAAF,CAAQzC,UAAR,EAAoB;EACpCqC,MAAAA,aAAa,EAAbA;EADoC,KAApB,CAAlB;EAIAjD,IAAAA,qBAAC,CAAC,KAAKuC,QAAN,CAAD,CAAiBe,OAAjB,CAAyBF,SAAzB;;EAEA,QAAI,KAAKT,QAAL,IAAiBS,SAAS,CAACG,kBAAV,EAArB,EAAqD;EACnD;EACD;;EAED,SAAKZ,QAAL,GAAgB,IAAhB;;EAEA,SAAKa,eAAL;;EACA,SAAKC,aAAL;;EAEA,SAAKC,aAAL;;EAEA,SAAKC,eAAL;;EACA,SAAKC,eAAL;;EAEA5D,IAAAA,qBAAC,CAAC,KAAKuC,QAAN,CAAD,CAAiBsB,EAAjB,CACE7C,mBADF,EAEEe,qBAFF,EAGE,UAAA+B,KAAK;EAAA,aAAI,KAAI,CAACZ,IAAL,CAAUY,KAAV,CAAJ;EAAA,KAHP;EAMA9D,IAAAA,qBAAC,CAAC,KAAKwC,OAAN,CAAD,CAAgBqB,EAAhB,CAAmB1C,uBAAnB,EAA4C,YAAM;EAChDnB,MAAAA,qBAAC,CAAC,KAAI,CAACuC,QAAN,CAAD,CAAiBwB,GAAjB,CAAqB7C,qBAArB,EAA4C,UAAA4C,KAAK,EAAI;EACnD,YAAI9D,qBAAC,CAAC8D,KAAK,CAACE,MAAP,CAAD,CAAgBC,EAAhB,CAAmB,KAAI,CAAC1B,QAAxB,CAAJ,EAAuC;EACrC,UAAA,KAAI,CAACM,oBAAL,GAA4B,IAA5B;EACD;EACF,OAJD;EAKD,KAND;;EAQA,SAAKqB,aAAL,CAAmB;EAAA,aAAM,KAAI,CAACC,YAAL,CAAkBlB,aAAlB,CAAN;EAAA,KAAnB;EACD;;WAEDC,OAAA,cAAKY,KAAL,EAAY;EAAA;;EACV,QAAIA,KAAJ,EAAW;EACTA,MAAAA,KAAK,CAACM,cAAN;EACD;;EAED,QAAI,CAAC,KAAKzB,QAAN,IAAkB,KAAKG,gBAA3B,EAA6C;EAC3C;EACD;;EAED,QAAMuB,SAAS,GAAGrE,qBAAC,CAACqD,KAAF,CAAQ5C,UAAR,CAAlB;EAEAT,IAAAA,qBAAC,CAAC,KAAKuC,QAAN,CAAD,CAAiBe,OAAjB,CAAyBe,SAAzB;;EAEA,QAAI,CAAC,KAAK1B,QAAN,IAAkB0B,SAAS,CAACd,kBAAV,EAAtB,EAAsD;EACpD;EACD;;EAED,SAAKZ,QAAL,GAAgB,KAAhB;EACA,QAAM2B,UAAU,GAAGtE,qBAAC,CAAC,KAAKuC,QAAN,CAAD,CAAiBY,QAAjB,CAA0B1B,eAA1B,CAAnB;;EAEA,QAAI6C,UAAJ,EAAgB;EACd,WAAKxB,gBAAL,GAAwB,IAAxB;EACD;;EAED,SAAKa,eAAL;;EACA,SAAKC,eAAL;;EAEA5D,IAAAA,qBAAC,CAACuE,QAAD,CAAD,CAAYC,GAAZ,CAAgB1D,aAAhB;EAEAd,IAAAA,qBAAC,CAAC,KAAKuC,QAAN,CAAD,CAAiBkC,WAAjB,CAA6B/C,eAA7B;EAEA1B,IAAAA,qBAAC,CAAC,KAAKuC,QAAN,CAAD,CAAiBiC,GAAjB,CAAqBxD,mBAArB;EACAhB,IAAAA,qBAAC,CAAC,KAAKwC,OAAN,CAAD,CAAgBgC,GAAhB,CAAoBrD,uBAApB;;EAEA,QAAImD,UAAJ,EAAgB;EACd,UAAMI,kBAAkB,GAAGC,wBAAI,CAACC,gCAAL,CAAsC,KAAKrC,QAA3C,CAA3B;EAEAvC,MAAAA,qBAAC,CAAC,KAAKuC,QAAN,CAAD,CACGwB,GADH,CACOY,wBAAI,CAACE,cADZ,EAC4B,UAAAf,KAAK;EAAA,eAAI,MAAI,CAACgB,UAAL,CAAgBhB,KAAhB,CAAJ;EAAA,OADjC,EAEGiB,oBAFH,CAEwBL,kBAFxB;EAGD,KAND,MAMO;EACL,WAAKI,UAAL;EACD;EACF;;WAEDE,UAAA,mBAAU;EACR,KAACC,MAAD,EAAS,KAAK1C,QAAd,EAAwB,KAAKC,OAA7B,EACG0C,OADH,CACW,UAAAC,WAAW;EAAA,aAAInF,qBAAC,CAACmF,WAAD,CAAD,CAAeX,GAAf,CAAmB3E,SAAnB,CAAJ;EAAA,KADtB;EAGA;;;;;;EAKAG,IAAAA,qBAAC,CAACuE,QAAD,CAAD,CAAYC,GAAZ,CAAgB1D,aAAhB;EAEAd,IAAAA,qBAAC,CAACoF,UAAF,CAAa,KAAK7C,QAAlB,EAA4B3C,QAA5B;EAEA,SAAKyC,OAAL,GAAe,IAAf;EACA,SAAKE,QAAL,GAAgB,IAAhB;EACA,SAAKC,OAAL,GAAe,IAAf;EACA,SAAKE,SAAL,GAAiB,IAAjB;EACA,SAAKC,QAAL,GAAgB,IAAhB;EACA,SAAKC,kBAAL,GAA0B,IAA1B;EACA,SAAKC,oBAAL,GAA4B,IAA5B;EACA,SAAKC,gBAAL,GAAwB,IAAxB;EACA,SAAKC,eAAL,GAAuB,IAAvB;EACD;;WAEDsC,eAAA,wBAAe;EACb,SAAK3B,aAAL;EACD;;;WAIDpB,aAAA,oBAAWF,MAAX,EAAmB;EACjBA,IAAAA,MAAM,gBACDjC,OADC,EAEDiC,MAFC,CAAN;EAIAuC,IAAAA,wBAAI,CAACW,eAAL,CAAqB5F,IAArB,EAA2B0C,MAA3B,EAAmC5B,WAAnC;EACA,WAAO4B,MAAP;EACD;;WAEDmD,6BAAA,sCAA6B;EAAA;;EAC3B,QAAI,KAAKlD,OAAL,CAAajC,QAAb,KAA0B,QAA9B,EAAwC;EACtC,UAAMoF,kBAAkB,GAAGxF,qBAAC,CAACqD,KAAF,CAAQ3C,oBAAR,CAA3B;EAEAV,MAAAA,qBAAC,CAAC,KAAKuC,QAAN,CAAD,CAAiBe,OAAjB,CAAyBkC,kBAAzB;;EACA,UAAIA,kBAAkB,CAACjC,kBAAnB,EAAJ,EAA6C;EAC3C;EACD;;EAED,UAAMkC,kBAAkB,GAAG,KAAKlD,QAAL,CAAcmD,YAAd,GAA6BnB,QAAQ,CAACoB,eAAT,CAAyBC,YAAjF;;EAEA,UAAI,CAACH,kBAAL,EAAyB;EACvB,aAAKlD,QAAL,CAAcsD,KAAd,CAAoBC,SAApB,GAAgC,QAAhC;EACD;;EAED,WAAKvD,QAAL,CAAcwD,SAAd,CAAwBC,GAAxB,CAA4BrE,iBAA5B;;EAEA,UAAMsE,uBAAuB,GAAGtB,wBAAI,CAACC,gCAAL,CAAsC,KAAKpC,OAA3C,CAAhC;EACAxC,MAAAA,qBAAC,CAAC,KAAKuC,QAAN,CAAD,CAAiBiC,GAAjB,CAAqBG,wBAAI,CAACE,cAA1B;EAEA7E,MAAAA,qBAAC,CAAC,KAAKuC,QAAN,CAAD,CAAiBwB,GAAjB,CAAqBY,wBAAI,CAACE,cAA1B,EAA0C,YAAM;EAC9C,QAAA,MAAI,CAACtC,QAAL,CAAcwD,SAAd,CAAwBG,MAAxB,CAA+BvE,iBAA/B;;EACA,YAAI,CAAC8D,kBAAL,EAAyB;EACvBzF,UAAAA,qBAAC,CAAC,MAAI,CAACuC,QAAN,CAAD,CAAiBwB,GAAjB,CAAqBY,wBAAI,CAACE,cAA1B,EAA0C,YAAM;EAC9C,YAAA,MAAI,CAACtC,QAAL,CAAcsD,KAAd,CAAoBC,SAApB,GAAgC,EAAhC;EACD,WAFD,EAGGf,oBAHH,CAGwB,MAAI,CAACxC,QAH7B,EAGuC0D,uBAHvC;EAID;EACF,OARD,EASGlB,oBATH,CASwBkB,uBATxB;;EAUA,WAAK1D,QAAL,CAAcjC,KAAd;EACD,KA9BD,MA8BO;EACL,WAAK4C,IAAL;EACD;EACF;;WAEDiB,eAAA,sBAAalB,aAAb,EAA4B;EAAA;;EAC1B,QAAMqB,UAAU,GAAGtE,qBAAC,CAAC,KAAKuC,QAAN,CAAD,CAAiBY,QAAjB,CAA0B1B,eAA1B,CAAnB;EACA,QAAM0E,SAAS,GAAG,KAAK3D,OAAL,GAAe,KAAKA,OAAL,CAAaC,aAAb,CAA2BZ,mBAA3B,CAAf,GAAiE,IAAnF;;EAEA,QAAI,CAAC,KAAKU,QAAL,CAAc6D,UAAf,IACA,KAAK7D,QAAL,CAAc6D,UAAd,CAAyBC,QAAzB,KAAsCC,IAAI,CAACC,YAD/C,EAC6D;EAC3D;EACAhC,MAAAA,QAAQ,CAACiC,IAAT,CAAcC,WAAd,CAA0B,KAAKlE,QAA/B;EACD;;EAED,SAAKA,QAAL,CAAcsD,KAAd,CAAoBa,OAApB,GAA8B,OAA9B;;EACA,SAAKnE,QAAL,CAAcoE,eAAd,CAA8B,aAA9B;;EACA,SAAKpE,QAAL,CAAcqE,YAAd,CAA2B,YAA3B,EAAyC,IAAzC;;EACA,SAAKrE,QAAL,CAAcqE,YAAd,CAA2B,MAA3B,EAAmC,QAAnC;;EAEA,QAAI5G,qBAAC,CAAC,KAAKwC,OAAN,CAAD,CAAgBW,QAAhB,CAAyB9B,qBAAzB,KAAmD8E,SAAvD,EAAkE;EAChEA,MAAAA,SAAS,CAACU,SAAV,GAAsB,CAAtB;EACD,KAFD,MAEO;EACL,WAAKtE,QAAL,CAAcsE,SAAd,GAA0B,CAA1B;EACD;;EAED,QAAIvC,UAAJ,EAAgB;EACdK,MAAAA,wBAAI,CAACmC,MAAL,CAAY,KAAKvE,QAAjB;EACD;;EAEDvC,IAAAA,qBAAC,CAAC,KAAKuC,QAAN,CAAD,CAAiBwE,QAAjB,CAA0BrF,eAA1B;;EAEA,QAAI,KAAKW,OAAL,CAAa/B,KAAjB,EAAwB;EACtB,WAAK0G,aAAL;EACD;;EAED,QAAMC,UAAU,GAAGjH,qBAAC,CAACqD,KAAF,CAAQxC,WAAR,EAAqB;EACtCoC,MAAAA,aAAa,EAAbA;EADsC,KAArB,CAAnB;;EAIA,QAAMiE,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;EAC/B,UAAI,MAAI,CAAC7E,OAAL,CAAa/B,KAAjB,EAAwB;EACtB,QAAA,MAAI,CAACiC,QAAL,CAAcjC,KAAd;EACD;;EAED,MAAA,MAAI,CAACwC,gBAAL,GAAwB,KAAxB;EACA9C,MAAAA,qBAAC,CAAC,MAAI,CAACuC,QAAN,CAAD,CAAiBe,OAAjB,CAAyB2D,UAAzB;EACD,KAPD;;EASA,QAAI3C,UAAJ,EAAgB;EACd,UAAMI,kBAAkB,GAAGC,wBAAI,CAACC,gCAAL,CAAsC,KAAKpC,OAA3C,CAA3B;EAEAxC,MAAAA,qBAAC,CAAC,KAAKwC,OAAN,CAAD,CACGuB,GADH,CACOY,wBAAI,CAACE,cADZ,EAC4BqC,kBAD5B,EAEGnC,oBAFH,CAEwBL,kBAFxB;EAGD,KAND,MAMO;EACLwC,MAAAA,kBAAkB;EACnB;EACF;;WAEDF,gBAAA,yBAAgB;EAAA;;EACdhH,IAAAA,qBAAC,CAACuE,QAAD,CAAD,CACGC,GADH,CACO1D,aADP;EAAA,KAEG+C,EAFH,CAEM/C,aAFN,EAEqB,UAAAgD,KAAK,EAAI;EAC1B,UAAIS,QAAQ,KAAKT,KAAK,CAACE,MAAnB,IACA,MAAI,CAACzB,QAAL,KAAkBuB,KAAK,CAACE,MADxB,IAEAhE,qBAAC,CAAC,MAAI,CAACuC,QAAN,CAAD,CAAiB4E,GAAjB,CAAqBrD,KAAK,CAACE,MAA3B,EAAmCoD,MAAnC,KAA8C,CAFlD,EAEqD;EACnD,QAAA,MAAI,CAAC7E,QAAL,CAAcjC,KAAd;EACD;EACF,KARH;EASD;;WAEDqD,kBAAA,2BAAkB;EAAA;;EAChB,QAAI,KAAKhB,QAAT,EAAmB;EACjB3C,MAAAA,qBAAC,CAAC,KAAKuC,QAAN,CAAD,CAAiBsB,EAAjB,CAAoB5C,qBAApB,EAA2C,UAAA6C,KAAK,EAAI;EAClD,YAAI,MAAI,CAACzB,OAAL,CAAahC,QAAb,IAAyByD,KAAK,CAACuD,KAAN,KAAgBnH,cAA7C,EAA6D;EAC3D4D,UAAAA,KAAK,CAACM,cAAN;;EACA,UAAA,MAAI,CAAClB,IAAL;EACD,SAHD,MAGO,IAAI,CAAC,MAAI,CAACb,OAAL,CAAahC,QAAd,IAA0ByD,KAAK,CAACuD,KAAN,KAAgBnH,cAA9C,EAA8D;EACnE,UAAA,MAAI,CAACqF,0BAAL;EACD;EACF,OAPD;EAQD,KATD,MASO,IAAI,CAAC,KAAK5C,QAAV,EAAoB;EACzB3C,MAAAA,qBAAC,CAAC,KAAKuC,QAAN,CAAD,CAAiBiC,GAAjB,CAAqBvD,qBAArB;EACD;EACF;;WAED2C,kBAAA,2BAAkB;EAAA;;EAChB,QAAI,KAAKjB,QAAT,EAAmB;EACjB3C,MAAAA,qBAAC,CAACiF,MAAD,CAAD,CAAUpB,EAAV,CAAa9C,YAAb,EAA2B,UAAA+C,KAAK;EAAA,eAAI,MAAI,CAACuB,YAAL,CAAkBvB,KAAlB,CAAJ;EAAA,OAAhC;EACD,KAFD,MAEO;EACL9D,MAAAA,qBAAC,CAACiF,MAAD,CAAD,CAAUT,GAAV,CAAczD,YAAd;EACD;EACF;;WAED+D,aAAA,sBAAa;EAAA;;EACX,SAAKvC,QAAL,CAAcsD,KAAd,CAAoBa,OAApB,GAA8B,MAA9B;;EACA,SAAKnE,QAAL,CAAcqE,YAAd,CAA2B,aAA3B,EAA0C,IAA1C;;EACA,SAAKrE,QAAL,CAAcoE,eAAd,CAA8B,YAA9B;;EACA,SAAKpE,QAAL,CAAcoE,eAAd,CAA8B,MAA9B;;EACA,SAAK7D,gBAAL,GAAwB,KAAxB;;EACA,SAAKoB,aAAL,CAAmB,YAAM;EACvBlE,MAAAA,qBAAC,CAACuE,QAAQ,CAACiC,IAAV,CAAD,CAAiB/B,WAAjB,CAA6BjD,eAA7B;;EACA,MAAA,MAAI,CAAC8F,iBAAL;;EACA,MAAA,MAAI,CAACC,eAAL;;EACAvH,MAAAA,qBAAC,CAAC,MAAI,CAACuC,QAAN,CAAD,CAAiBe,OAAjB,CAAyB3C,YAAzB;EACD,KALD;EAMD;;WAED6G,kBAAA,2BAAkB;EAChB,QAAI,KAAK9E,SAAT,EAAoB;EAClB1C,MAAAA,qBAAC,CAAC,KAAK0C,SAAN,CAAD,CAAkBwD,MAAlB;EACA,WAAKxD,SAAL,GAAiB,IAAjB;EACD;EACF;;WAEDwB,gBAAA,uBAAcuD,QAAd,EAAwB;EAAA;;EACtB,QAAMC,OAAO,GAAG1H,qBAAC,CAAC,KAAKuC,QAAN,CAAD,CAAiBY,QAAjB,CAA0B1B,eAA1B,IACdA,eADc,GACI,EADpB;;EAGA,QAAI,KAAKkB,QAAL,IAAiB,KAAKN,OAAL,CAAajC,QAAlC,EAA4C;EAC1C,WAAKsC,SAAL,GAAiB6B,QAAQ,CAACoD,aAAT,CAAuB,KAAvB,CAAjB;EACA,WAAKjF,SAAL,CAAekF,SAAf,GAA2BrG,mBAA3B;;EAEA,UAAImG,OAAJ,EAAa;EACX,aAAKhF,SAAL,CAAeqD,SAAf,CAAyBC,GAAzB,CAA6B0B,OAA7B;EACD;;EAED1H,MAAAA,qBAAC,CAAC,KAAK0C,SAAN,CAAD,CAAkBmF,QAAlB,CAA2BtD,QAAQ,CAACiC,IAApC;EAEAxG,MAAAA,qBAAC,CAAC,KAAKuC,QAAN,CAAD,CAAiBsB,EAAjB,CAAoB7C,mBAApB,EAAyC,UAAA8C,KAAK,EAAI;EAChD,YAAI,MAAI,CAACjB,oBAAT,EAA+B;EAC7B,UAAA,MAAI,CAACA,oBAAL,GAA4B,KAA5B;EACA;EACD;;EAED,YAAIiB,KAAK,CAACE,MAAN,KAAiBF,KAAK,CAACgE,aAA3B,EAA0C;EACxC;EACD;;EAED,QAAA,MAAI,CAACvC,0BAAL;EACD,OAXD;;EAaA,UAAImC,OAAJ,EAAa;EACX/C,QAAAA,wBAAI,CAACmC,MAAL,CAAY,KAAKpE,SAAjB;EACD;;EAED1C,MAAAA,qBAAC,CAAC,KAAK0C,SAAN,CAAD,CAAkBqE,QAAlB,CAA2BrF,eAA3B;;EAEA,UAAI,CAAC+F,QAAL,EAAe;EACb;EACD;;EAED,UAAI,CAACC,OAAL,EAAc;EACZD,QAAAA,QAAQ;EACR;EACD;;EAED,UAAMM,0BAA0B,GAAGpD,wBAAI,CAACC,gCAAL,CAAsC,KAAKlC,SAA3C,CAAnC;EAEA1C,MAAAA,qBAAC,CAAC,KAAK0C,SAAN,CAAD,CACGqB,GADH,CACOY,wBAAI,CAACE,cADZ,EAC4B4C,QAD5B,EAEG1C,oBAFH,CAEwBgD,0BAFxB;EAGD,KA3CD,MA2CO,IAAI,CAAC,KAAKpF,QAAN,IAAkB,KAAKD,SAA3B,EAAsC;EAC3C1C,MAAAA,qBAAC,CAAC,KAAK0C,SAAN,CAAD,CAAkB+B,WAAlB,CAA8B/C,eAA9B;;EAEA,UAAMsG,cAAc,GAAG,SAAjBA,cAAiB,GAAM;EAC3B,QAAA,MAAI,CAACR,eAAL;;EACA,YAAIC,QAAJ,EAAc;EACZA,UAAAA,QAAQ;EACT;EACF,OALD;;EAOA,UAAIzH,qBAAC,CAAC,KAAKuC,QAAN,CAAD,CAAiBY,QAAjB,CAA0B1B,eAA1B,CAAJ,EAAgD;EAC9C,YAAMsG,2BAA0B,GAAGpD,wBAAI,CAACC,gCAAL,CAAsC,KAAKlC,SAA3C,CAAnC;;EAEA1C,QAAAA,qBAAC,CAAC,KAAK0C,SAAN,CAAD,CACGqB,GADH,CACOY,wBAAI,CAACE,cADZ,EAC4BmD,cAD5B,EAEGjD,oBAFH,CAEwBgD,2BAFxB;EAGD,OAND,MAMO;EACLC,QAAAA,cAAc;EACf;EACF,KAnBM,MAmBA,IAAIP,QAAJ,EAAc;EACnBA,MAAAA,QAAQ;EACT;EACF;EAGD;EACA;EACA;;;WAEA/D,gBAAA,yBAAgB;EACd,QAAM+B,kBAAkB,GAAG,KAAKlD,QAAL,CAAcmD,YAAd,GAA6BnB,QAAQ,CAACoB,eAAT,CAAyBC,YAAjF;;EAEA,QAAI,CAAC,KAAKhD,kBAAN,IAA4B6C,kBAAhC,EAAoD;EAClD,WAAKlD,QAAL,CAAcsD,KAAd,CAAoBoC,WAApB,GAAqC,KAAKlF,eAA1C;EACD;;EAED,QAAI,KAAKH,kBAAL,IAA2B,CAAC6C,kBAAhC,EAAoD;EAClD,WAAKlD,QAAL,CAAcsD,KAAd,CAAoBqC,YAApB,GAAsC,KAAKnF,eAA3C;EACD;EACF;;WAEDuE,oBAAA,6BAAoB;EAClB,SAAK/E,QAAL,CAAcsD,KAAd,CAAoBoC,WAApB,GAAkC,EAAlC;EACA,SAAK1F,QAAL,CAAcsD,KAAd,CAAoBqC,YAApB,GAAmC,EAAnC;EACD;;WAED1E,kBAAA,2BAAkB;EAChB,QAAM2E,IAAI,GAAG5D,QAAQ,CAACiC,IAAT,CAAc4B,qBAAd,EAAb;EACA,SAAKxF,kBAAL,GAA0ByF,IAAI,CAACC,KAAL,CAAWH,IAAI,CAACI,IAAL,GAAYJ,IAAI,CAACK,KAA5B,IAAqCvD,MAAM,CAACwD,UAAtE;EACA,SAAK1F,eAAL,GAAuB,KAAK2F,kBAAL,EAAvB;EACD;;WAEDjF,gBAAA,yBAAgB;EAAA;;EACd,QAAI,KAAKb,kBAAT,EAA6B;EAC3B;EACA;EACA,UAAM+F,YAAY,GAAG,GAAGC,KAAH,CAASC,IAAT,CAActE,QAAQ,CAACuE,gBAAT,CAA0B9G,sBAA1B,CAAd,CAArB;EACA,UAAM+G,aAAa,GAAG,GAAGH,KAAH,CAASC,IAAT,CAActE,QAAQ,CAACuE,gBAAT,CAA0B7G,uBAA1B,CAAd,CAAtB,CAJ2B;;EAO3BjC,MAAAA,qBAAC,CAAC2I,YAAD,CAAD,CAAgBK,IAAhB,CAAqB,UAACC,KAAD,EAAQ9G,OAAR,EAAoB;EACvC,YAAM+G,aAAa,GAAG/G,OAAO,CAAC0D,KAAR,CAAcqC,YAApC;EACA,YAAMiB,iBAAiB,GAAGnJ,qBAAC,CAACmC,OAAD,CAAD,CAAWiH,GAAX,CAAe,eAAf,CAA1B;EACApJ,QAAAA,qBAAC,CAACmC,OAAD,CAAD,CACGkH,IADH,CACQ,eADR,EACyBH,aADzB,EAEGE,GAFH,CAEO,eAFP,EAE2BE,UAAU,CAACH,iBAAD,CAAV,GAAgC,OAAI,CAACpG,eAFhE;EAGD,OAND,EAP2B;;EAgB3B/C,MAAAA,qBAAC,CAAC+I,aAAD,CAAD,CAAiBC,IAAjB,CAAsB,UAACC,KAAD,EAAQ9G,OAAR,EAAoB;EACxC,YAAMoH,YAAY,GAAGpH,OAAO,CAAC0D,KAAR,CAAc2D,WAAnC;EACA,YAAMC,gBAAgB,GAAGzJ,qBAAC,CAACmC,OAAD,CAAD,CAAWiH,GAAX,CAAe,cAAf,CAAzB;EACApJ,QAAAA,qBAAC,CAACmC,OAAD,CAAD,CACGkH,IADH,CACQ,cADR,EACwBE,YADxB,EAEGH,GAFH,CAEO,cAFP,EAE0BE,UAAU,CAACG,gBAAD,CAAV,GAA+B,OAAI,CAAC1G,eAF9D;EAGD,OAND,EAhB2B;;EAyB3B,UAAMmG,aAAa,GAAG3E,QAAQ,CAACiC,IAAT,CAAcX,KAAd,CAAoBqC,YAA1C;EACA,UAAMiB,iBAAiB,GAAGnJ,qBAAC,CAACuE,QAAQ,CAACiC,IAAV,CAAD,CAAiB4C,GAAjB,CAAqB,eAArB,CAA1B;EACApJ,MAAAA,qBAAC,CAACuE,QAAQ,CAACiC,IAAV,CAAD,CACG6C,IADH,CACQ,eADR,EACyBH,aADzB,EAEGE,GAFH,CAEO,eAFP,EAE2BE,UAAU,CAACH,iBAAD,CAAV,GAAgC,KAAKpG,eAFhE;EAGD;;EAED/C,IAAAA,qBAAC,CAACuE,QAAQ,CAACiC,IAAV,CAAD,CAAiBO,QAAjB,CAA0BvF,eAA1B;EACD;;WAED+F,kBAAA,2BAAkB;EAChB;EACA,QAAMoB,YAAY,GAAG,GAAGC,KAAH,CAASC,IAAT,CAActE,QAAQ,CAACuE,gBAAT,CAA0B9G,sBAA1B,CAAd,CAArB;EACAhC,IAAAA,qBAAC,CAAC2I,YAAD,CAAD,CAAgBK,IAAhB,CAAqB,UAACC,KAAD,EAAQ9G,OAAR,EAAoB;EACvC,UAAMuH,OAAO,GAAG1J,qBAAC,CAACmC,OAAD,CAAD,CAAWkH,IAAX,CAAgB,eAAhB,CAAhB;EACArJ,MAAAA,qBAAC,CAACmC,OAAD,CAAD,CAAWiD,UAAX,CAAsB,eAAtB;EACAjD,MAAAA,OAAO,CAAC0D,KAAR,CAAcqC,YAAd,GAA6BwB,OAAO,GAAGA,OAAH,GAAa,EAAjD;EACD,KAJD,EAHgB;;EAUhB,QAAMC,QAAQ,GAAG,GAAGf,KAAH,CAASC,IAAT,CAActE,QAAQ,CAACuE,gBAAT,MAA6B7G,uBAA7B,CAAd,CAAjB;EACAjC,IAAAA,qBAAC,CAAC2J,QAAD,CAAD,CAAYX,IAAZ,CAAiB,UAACC,KAAD,EAAQ9G,OAAR,EAAoB;EACnC,UAAMyH,MAAM,GAAG5J,qBAAC,CAACmC,OAAD,CAAD,CAAWkH,IAAX,CAAgB,cAAhB,CAAf;;EACA,UAAI,OAAOO,MAAP,KAAkB,WAAtB,EAAmC;EACjC5J,QAAAA,qBAAC,CAACmC,OAAD,CAAD,CAAWiH,GAAX,CAAe,cAAf,EAA+BQ,MAA/B,EAAuCxE,UAAvC,CAAkD,cAAlD;EACD;EACF,KALD,EAXgB;;EAmBhB,QAAMsE,OAAO,GAAG1J,qBAAC,CAACuE,QAAQ,CAACiC,IAAV,CAAD,CAAiB6C,IAAjB,CAAsB,eAAtB,CAAhB;EACArJ,IAAAA,qBAAC,CAACuE,QAAQ,CAACiC,IAAV,CAAD,CAAiBpB,UAAjB,CAA4B,eAA5B;EACAb,IAAAA,QAAQ,CAACiC,IAAT,CAAcX,KAAd,CAAoBqC,YAApB,GAAmCwB,OAAO,GAAGA,OAAH,GAAa,EAAvD;EACD;;WAEDhB,qBAAA,8BAAqB;EAAE;EACrB,QAAMmB,SAAS,GAAGtF,QAAQ,CAACoD,aAAT,CAAuB,KAAvB,CAAlB;EACAkC,IAAAA,SAAS,CAACjC,SAAV,GAAsBtG,6BAAtB;EACAiD,IAAAA,QAAQ,CAACiC,IAAT,CAAcC,WAAd,CAA0BoD,SAA1B;EACA,QAAMC,cAAc,GAAGD,SAAS,CAACzB,qBAAV,GAAkC2B,KAAlC,GAA0CF,SAAS,CAACG,WAA3E;EACAzF,IAAAA,QAAQ,CAACiC,IAAT,CAAcyD,WAAd,CAA0BJ,SAA1B;EACA,WAAOC,cAAP;EACD;;;UAIMI,mBAAP,0BAAwB9H,MAAxB,EAAgCa,aAAhC,EAA+C;EAC7C,WAAO,KAAK+F,IAAL,CAAU,YAAY;EAC3B,UAAIK,IAAI,GAAGrJ,qBAAC,CAAC,IAAD,CAAD,CAAQqJ,IAAR,CAAazJ,QAAb,CAAX;;EACA,UAAMyC,OAAO,gBACRlC,OADQ,EAERH,qBAAC,CAAC,IAAD,CAAD,CAAQqJ,IAAR,EAFQ,EAGP,OAAOjH,MAAP,KAAkB,QAAlB,IAA8BA,MAA9B,GAAuCA,MAAvC,GAAgD,EAHzC,CAAb;;EAMA,UAAI,CAACiH,IAAL,EAAW;EACTA,QAAAA,IAAI,GAAG,IAAInH,KAAJ,CAAU,IAAV,EAAgBG,OAAhB,CAAP;EACArC,QAAAA,qBAAC,CAAC,IAAD,CAAD,CAAQqJ,IAAR,CAAazJ,QAAb,EAAuByJ,IAAvB;EACD;;EAED,UAAI,OAAOjH,MAAP,KAAkB,QAAtB,EAAgC;EAC9B,YAAI,OAAOiH,IAAI,CAACjH,MAAD,CAAX,KAAwB,WAA5B,EAAyC;EACvC,gBAAM,IAAI+H,SAAJ,wBAAkC/H,MAAlC,QAAN;EACD;;EAEDiH,QAAAA,IAAI,CAACjH,MAAD,CAAJ,CAAaa,aAAb;EACD,OAND,MAMO,IAAIZ,OAAO,CAAC9B,IAAZ,EAAkB;EACvB8I,QAAAA,IAAI,CAAC9I,IAAL,CAAU0C,aAAV;EACD;EACF,KAtBM,CAAP;EAuBD;;;;0BAreoB;EACnB,aAAOtD,OAAP;EACD;;;0BAEoB;EACnB,aAAOQ,OAAP;EACD;;;;;EAkeH;;;;;;;AAMAH,uBAAC,CAACuE,QAAD,CAAD,CAAYV,EAAZ,CAAezC,oBAAf,EAAqCU,oBAArC,EAA2D,UAAUgC,KAAV,EAAiB;EAAA;;EAC1E,MAAIE,MAAJ;EACA,MAAMoG,QAAQ,GAAGzF,wBAAI,CAAC0F,sBAAL,CAA4B,IAA5B,CAAjB;;EAEA,MAAID,QAAJ,EAAc;EACZpG,IAAAA,MAAM,GAAGO,QAAQ,CAAC9B,aAAT,CAAuB2H,QAAvB,CAAT;EACD;;EAED,MAAMhI,MAAM,GAAGpC,qBAAC,CAACgE,MAAD,CAAD,CAAUqF,IAAV,CAAezJ,QAAf,IACb,QADa,gBAERI,qBAAC,CAACgE,MAAD,CAAD,CAAUqF,IAAV,EAFQ,EAGRrJ,qBAAC,CAAC,IAAD,CAAD,CAAQqJ,IAAR,EAHQ,CAAf;;EAMA,MAAI,KAAKiB,OAAL,KAAiB,GAAjB,IAAwB,KAAKA,OAAL,KAAiB,MAA7C,EAAqD;EACnDxG,IAAAA,KAAK,CAACM,cAAN;EACD;;EAED,MAAMmG,OAAO,GAAGvK,qBAAC,CAACgE,MAAD,CAAD,CAAUD,GAAV,CAAcnD,UAAd,EAA0B,UAAAwC,SAAS,EAAI;EACrD,QAAIA,SAAS,CAACG,kBAAV,EAAJ,EAAoC;EAClC;EACA;EACD;;EAEDgH,IAAAA,OAAO,CAACxG,GAAR,CAAYpD,YAAZ,EAA0B,YAAM;EAC9B,UAAIX,qBAAC,CAAC,OAAD,CAAD,CAAQiE,EAAR,CAAW,UAAX,CAAJ,EAA4B;EAC1B,QAAA,OAAI,CAAC3D,KAAL;EACD;EACF,KAJD;EAKD,GAXe,CAAhB;;EAaA4B,EAAAA,KAAK,CAACgI,gBAAN,CAAuBrB,IAAvB,CAA4B7I,qBAAC,CAACgE,MAAD,CAA7B,EAAuC5B,MAAvC,EAA+C,IAA/C;EACD,CAhCD;EAkCA;;;;;;AAMApC,uBAAC,CAACC,EAAF,CAAKP,IAAL,IAAawC,KAAK,CAACgI,gBAAnB;AACAlK,uBAAC,CAACC,EAAF,CAAKP,IAAL,EAAW8K,WAAX,GAAyBtI,KAAzB;;AACAlC,uBAAC,CAACC,EAAF,CAAKP,IAAL,EAAW+K,UAAX,GAAwB,YAAM;EAC5BzK,EAAAA,qBAAC,CAACC,EAAF,CAAKP,IAAL,IAAaK,kBAAb;EACA,SAAOmC,KAAK,CAACgI,gBAAb;EACD,CAHD;;;;;;;;"} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/js/dist/popover.js b/npm_assets/node_modules/bootstrap/js/dist/popover.js index 3aa4fe4dc8..00f3b91202 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/popover.js +++ b/npm_assets/node_modules/bootstrap/js/dist/popover.js @@ -1,5 +1,5 @@ /*! - * Bootstrap popover.js v4.5.2 (https://getbootstrap.com/) + * Bootstrap popover.js v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -9,8 +9,10 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.jQuery, global.Tooltip)); }(this, (function ($, Tooltip) { 'use strict'; - $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $; - Tooltip = Tooltip && Object.prototype.hasOwnProperty.call(Tooltip, 'default') ? Tooltip['default'] : Tooltip; + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var $__default = /*#__PURE__*/_interopDefaultLegacy($); + var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip); function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } @@ -26,21 +28,21 @@ */ var NAME = 'popover'; - var VERSION = '4.5.2'; + var VERSION = '4.5.3'; var DATA_KEY = 'bs.popover'; var EVENT_KEY = "." + DATA_KEY; - var JQUERY_NO_CONFLICT = $.fn[NAME]; + var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME]; var CLASS_PREFIX = 'bs-popover'; var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); - var Default = _extends({}, Tooltip.Default, { + var Default = _extends({}, Tooltip__default['default'].Default, { placement: 'right', trigger: 'click', content: '', template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>' }); - var DefaultType = _extends({}, Tooltip.DefaultType, { + var DefaultType = _extends({}, Tooltip__default['default'].DefaultType, { content: '(string|element|function)' }); @@ -81,16 +83,16 @@ }; _proto.addAttachmentClass = function addAttachmentClass(attachment) { - $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment); + $__default['default'](this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment); }; _proto.getTipElement = function getTipElement() { - this.tip = this.tip || $(this.config.template)[0]; + this.tip = this.tip || $__default['default'](this.config.template)[0]; return this.tip; }; _proto.setContent = function setContent() { - var $tip = $(this.getTipElement()); // We use append for html objects to maintain js events + var $tip = $__default['default'](this.getTipElement()); // We use append for html objects to maintain js events this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle()); @@ -110,7 +112,7 @@ }; _proto._cleanTipClass = function _cleanTipClass() { - var $tip = $(this.getTipElement()); + var $tip = $__default['default'](this.getTipElement()); var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX); if (tabClass !== null && tabClass.length > 0) { @@ -121,7 +123,7 @@ Popover._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var data = $(this).data(DATA_KEY); + var data = $__default['default'](this).data(DATA_KEY); var _config = typeof config === 'object' ? config : null; @@ -131,7 +133,7 @@ if (!data) { data = new Popover(this, _config); - $(this).data(DATA_KEY, data); + $__default['default'](this).data(DATA_KEY, data); } if (typeof config === 'string') { @@ -183,7 +185,7 @@ }]); return Popover; - }(Tooltip); + }(Tooltip__default['default']); /** * ------------------------------------------------------------------------ * jQuery @@ -191,11 +193,11 @@ */ - $.fn[NAME] = Popover._jQueryInterface; - $.fn[NAME].Constructor = Popover; + $__default['default'].fn[NAME] = Popover._jQueryInterface; + $__default['default'].fn[NAME].Constructor = Popover; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; + $__default['default'].fn[NAME].noConflict = function () { + $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT; return Popover._jQueryInterface; }; diff --git a/npm_assets/node_modules/bootstrap/js/dist/popover.js.map b/npm_assets/node_modules/bootstrap/js/dist/popover.js.map index 711e5cc755..c0309af7ad 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/popover.js.map +++ b/npm_assets/node_modules/bootstrap/js/dist/popover.js.map @@ -1 +1 @@ -{"version":3,"file":"popover.js","sources":["../src/popover.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(SELECTOR_CONTENT), content)\n\n $tip.removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","CLASS_PREFIX","BSCLS_PREFIX_REGEX","RegExp","Default","Tooltip","placement","trigger","content","template","DefaultType","CLASS_NAME_FADE","CLASS_NAME_SHOW","SELECTOR_TITLE","SELECTOR_CONTENT","Event","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Popover","isWithContent","getTitle","_getContent","addAttachmentClass","attachment","getTipElement","addClass","tip","config","setContent","$tip","setElementContent","find","call","element","removeClass","getAttribute","_cleanTipClass","tabClass","attr","match","length","join","_jQueryInterface","each","data","_config","test","TypeError","Constructor","noConflict"],"mappings":";;;;;;;;;;;;;;;;;;;;;EAUA;;;;;;EAMA,IAAMA,IAAI,GAAkB,SAA5B;EACA,IAAMC,OAAO,GAAe,OAA5B;EACA,IAAMC,QAAQ,GAAc,YAA5B;EACA,IAAMC,SAAS,SAAiBD,QAAhC;EACA,IAAME,kBAAkB,GAAIC,CAAC,CAACC,EAAF,CAAKN,IAAL,CAA5B;EACA,IAAMO,YAAY,GAAU,YAA5B;EACA,IAAMC,kBAAkB,GAAI,IAAIC,MAAJ,aAAqBF,YAArB,WAAyC,GAAzC,CAA5B;;EAEA,IAAMG,OAAO,gBACRC,OAAO,CAACD,OADA;EAEXE,EAAAA,SAAS,EAAG,OAFD;EAGXC,EAAAA,OAAO,EAAK,OAHD;EAIXC,EAAAA,OAAO,EAAK,EAJD;EAKXC,EAAAA,QAAQ,EAAI,yCACA,2BADA,GAEA,kCAFA,GAGA;EARD,EAAb;;EAWA,IAAMC,WAAW,gBACZL,OAAO,CAACK,WADI;EAEfF,EAAAA,OAAO,EAAG;EAFK,EAAjB;;EAKA,IAAMG,eAAe,GAAG,MAAxB;EACA,IAAMC,eAAe,GAAG,MAAxB;EAEA,IAAMC,cAAc,GAAK,iBAAzB;EACA,IAAMC,gBAAgB,GAAG,eAAzB;EAEA,IAAMC,KAAK,GAAG;EACZC,EAAAA,IAAI,WAAgBnB,SADR;EAEZoB,EAAAA,MAAM,aAAgBpB,SAFV;EAGZqB,EAAAA,IAAI,WAAgBrB,SAHR;EAIZsB,EAAAA,KAAK,YAAgBtB,SAJT;EAKZuB,EAAAA,QAAQ,eAAgBvB,SALZ;EAMZwB,EAAAA,KAAK,YAAgBxB,SANT;EAOZyB,EAAAA,OAAO,cAAgBzB,SAPX;EAQZ0B,EAAAA,QAAQ,eAAgB1B,SARZ;EASZ2B,EAAAA,UAAU,iBAAgB3B,SATd;EAUZ4B,EAAAA,UAAU,iBAAgB5B;EAVd,CAAd;EAaA;;;;;;MAMM6B;;;;;;;;;EA+BJ;WAEAC,gBAAA,yBAAgB;EACd,WAAO,KAAKC,QAAL,MAAmB,KAAKC,WAAL,EAA1B;EACD;;WAEDC,qBAAA,4BAAmBC,UAAnB,EAA+B;EAC7BhC,IAAAA,CAAC,CAAC,KAAKiC,aAAL,EAAD,CAAD,CAAwBC,QAAxB,CAAoChC,YAApC,SAAoD8B,UAApD;EACD;;WAEDC,gBAAA,yBAAgB;EACd,SAAKE,GAAL,GAAW,KAAKA,GAAL,IAAYnC,CAAC,CAAC,KAAKoC,MAAL,CAAY1B,QAAb,CAAD,CAAwB,CAAxB,CAAvB;EACA,WAAO,KAAKyB,GAAZ;EACD;;WAEDE,aAAA,sBAAa;EACX,QAAMC,IAAI,GAAGtC,CAAC,CAAC,KAAKiC,aAAL,EAAD,CAAd,CADW;;EAIX,SAAKM,iBAAL,CAAuBD,IAAI,CAACE,IAAL,CAAU1B,cAAV,CAAvB,EAAkD,KAAKe,QAAL,EAAlD;;EACA,QAAIpB,OAAO,GAAG,KAAKqB,WAAL,EAAd;;EACA,QAAI,OAAOrB,OAAP,KAAmB,UAAvB,EAAmC;EACjCA,MAAAA,OAAO,GAAGA,OAAO,CAACgC,IAAR,CAAa,KAAKC,OAAlB,CAAV;EACD;;EACD,SAAKH,iBAAL,CAAuBD,IAAI,CAACE,IAAL,CAAUzB,gBAAV,CAAvB,EAAoDN,OAApD;EAEA6B,IAAAA,IAAI,CAACK,WAAL,CAAoB/B,eAApB,SAAuCC,eAAvC;EACD;;;WAIDiB,cAAA,uBAAc;EACZ,WAAO,KAAKY,OAAL,CAAaE,YAAb,CAA0B,cAA1B,KACL,KAAKR,MAAL,CAAY3B,OADd;EAED;;WAEDoC,iBAAA,0BAAiB;EACf,QAAMP,IAAI,GAAGtC,CAAC,CAAC,KAAKiC,aAAL,EAAD,CAAd;EACA,QAAMa,QAAQ,GAAGR,IAAI,CAACS,IAAL,CAAU,OAAV,EAAmBC,KAAnB,CAAyB7C,kBAAzB,CAAjB;;EACA,QAAI2C,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,CAACG,MAAT,GAAkB,CAA3C,EAA8C;EAC5CX,MAAAA,IAAI,CAACK,WAAL,CAAiBG,QAAQ,CAACI,IAAT,CAAc,EAAd,CAAjB;EACD;EACF;;;YAIMC,mBAAP,0BAAwBf,MAAxB,EAAgC;EAC9B,WAAO,KAAKgB,IAAL,CAAU,YAAY;EAC3B,UAAIC,IAAI,GAAGrD,CAAC,CAAC,IAAD,CAAD,CAAQqD,IAAR,CAAaxD,QAAb,CAAX;;EACA,UAAMyD,OAAO,GAAG,OAAOlB,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsC,IAAtD;;EAEA,UAAI,CAACiB,IAAD,IAAS,eAAeE,IAAf,CAAoBnB,MAApB,CAAb,EAA0C;EACxC;EACD;;EAED,UAAI,CAACiB,IAAL,EAAW;EACTA,QAAAA,IAAI,GAAG,IAAI1B,OAAJ,CAAY,IAAZ,EAAkB2B,OAAlB,CAAP;EACAtD,QAAAA,CAAC,CAAC,IAAD,CAAD,CAAQqD,IAAR,CAAaxD,QAAb,EAAuBwD,IAAvB;EACD;;EAED,UAAI,OAAOjB,MAAP,KAAkB,QAAtB,EAAgC;EAC9B,YAAI,OAAOiB,IAAI,CAACjB,MAAD,CAAX,KAAwB,WAA5B,EAAyC;EACvC,gBAAM,IAAIoB,SAAJ,wBAAkCpB,MAAlC,QAAN;EACD;;EACDiB,QAAAA,IAAI,CAACjB,MAAD,CAAJ;EACD;EACF,KAnBM,CAAP;EAoBD;;;;EAjGD;0BAEqB;EACnB,aAAOxC,OAAP;EACD;;;0BAEoB;EACnB,aAAOS,OAAP;EACD;;;0BAEiB;EAChB,aAAOV,IAAP;EACD;;;0BAEqB;EACpB,aAAOE,QAAP;EACD;;;0BAEkB;EACjB,aAAOmB,KAAP;EACD;;;0BAEsB;EACrB,aAAOlB,SAAP;EACD;;;0BAEwB;EACvB,aAAOa,WAAP;EACD;;;;IA7BmBL;EAqGtB;;;;;;;EAMAN,CAAC,CAACC,EAAF,CAAKN,IAAL,IAAagC,OAAO,CAACwB,gBAArB;EACAnD,CAAC,CAACC,EAAF,CAAKN,IAAL,EAAW8D,WAAX,GAAyB9B,OAAzB;;EACA3B,CAAC,CAACC,EAAF,CAAKN,IAAL,EAAW+D,UAAX,GAAwB,YAAM;EAC5B1D,EAAAA,CAAC,CAACC,EAAF,CAAKN,IAAL,IAAaI,kBAAb;EACA,SAAO4B,OAAO,CAACwB,gBAAf;EACD,CAHD;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"popover.js","sources":["../src/popover.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent($tip.find(SELECTOR_CONTENT), content)\n\n $tip.removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","CLASS_PREFIX","BSCLS_PREFIX_REGEX","RegExp","Default","Tooltip","placement","trigger","content","template","DefaultType","CLASS_NAME_FADE","CLASS_NAME_SHOW","SELECTOR_TITLE","SELECTOR_CONTENT","Event","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Popover","isWithContent","getTitle","_getContent","addAttachmentClass","attachment","getTipElement","addClass","tip","config","setContent","$tip","setElementContent","find","call","element","removeClass","getAttribute","_cleanTipClass","tabClass","attr","match","length","join","_jQueryInterface","each","data","_config","test","TypeError","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/js/dist/scrollspy.js b/npm_assets/node_modules/bootstrap/js/dist/scrollspy.js index b1e4b2aff2..366519656b 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/scrollspy.js +++ b/npm_assets/node_modules/bootstrap/js/dist/scrollspy.js @@ -1,5 +1,5 @@ /*! - * Bootstrap scrollspy.js v4.5.2 (https://getbootstrap.com/) + * Bootstrap scrollspy.js v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -9,8 +9,10 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.ScrollSpy = factory(global.jQuery, global.Util)); }(this, (function ($, Util) { 'use strict'; - $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $; - Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util; + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var $__default = /*#__PURE__*/_interopDefaultLegacy($); + var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util); function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } @@ -24,11 +26,11 @@ */ var NAME = 'scrollspy'; - var VERSION = '4.5.2'; + var VERSION = '4.5.3'; var DATA_KEY = 'bs.scrollspy'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; - var JQUERY_NO_CONFLICT = $.fn[NAME]; + var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME]; var Default = { offset: 10, method: 'auto', @@ -72,7 +74,7 @@ this._targets = []; this._activeTarget = null; this._scrollHeight = 0; - $(this._scrollElement).on(EVENT_SCROLL, function (event) { + $__default['default'](this._scrollElement).on(EVENT_SCROLL, function (event) { return _this._process(event); }); this.refresh(); @@ -96,7 +98,7 @@ var targets = [].slice.call(document.querySelectorAll(this._selector)); targets.map(function (element) { var target; - var targetSelector = Util.getSelectorFromElement(element); + var targetSelector = Util__default['default'].getSelectorFromElement(element); if (targetSelector) { target = document.querySelector(targetSelector); @@ -107,7 +109,7 @@ if (targetBCR.width || targetBCR.height) { // TODO (fat): remove sketch reliance on jQuery position/offset - return [$(target)[offsetMethod]().top + offsetBase, targetSelector]; + return [$__default['default'](target)[offsetMethod]().top + offsetBase, targetSelector]; } } @@ -124,8 +126,8 @@ }; _proto.dispose = function dispose() { - $.removeData(this._element, DATA_KEY); - $(this._scrollElement).off(EVENT_KEY); + $__default['default'].removeData(this._element, DATA_KEY); + $__default['default'](this._scrollElement).off(EVENT_KEY); this._element = null; this._scrollElement = null; this._config = null; @@ -140,18 +142,18 @@ _proto._getConfig = function _getConfig(config) { config = _extends({}, Default, typeof config === 'object' && config ? config : {}); - if (typeof config.target !== 'string' && Util.isElement(config.target)) { - var id = $(config.target).attr('id'); + if (typeof config.target !== 'string' && Util__default['default'].isElement(config.target)) { + var id = $__default['default'](config.target).attr('id'); if (!id) { - id = Util.getUID(NAME); - $(config.target).attr('id', id); + id = Util__default['default'].getUID(NAME); + $__default['default'](config.target).attr('id', id); } config.target = "#" + id; } - Util.typeCheckConfig(NAME, config, DefaultType); + Util__default['default'].typeCheckConfig(NAME, config, DefaultType); return config; }; @@ -214,7 +216,7 @@ return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]"; }); - var $link = $([].slice.call(document.querySelectorAll(queries.join(',')))); + var $link = $__default['default']([].slice.call(document.querySelectorAll(queries.join(',')))); if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) { $link.closest(SELECTOR_DROPDOWN).find(SELECTOR_DROPDOWN_TOGGLE).addClass(CLASS_NAME_ACTIVE); @@ -229,7 +231,7 @@ $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_ITEMS).children(SELECTOR_NAV_LINKS).addClass(CLASS_NAME_ACTIVE); } - $(this._scrollElement).trigger(EVENT_ACTIVATE, { + $__default['default'](this._scrollElement).trigger(EVENT_ACTIVATE, { relatedTarget: target }); }; @@ -245,13 +247,13 @@ ScrollSpy._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var data = $(this).data(DATA_KEY); + var data = $__default['default'](this).data(DATA_KEY); var _config = typeof config === 'object' && config; if (!data) { data = new ScrollSpy(this, _config); - $(this).data(DATA_KEY, data); + $__default['default'](this).data(DATA_KEY, data); } if (typeof config === 'string') { @@ -285,12 +287,12 @@ */ - $(window).on(EVENT_LOAD_DATA_API, function () { + $__default['default'](window).on(EVENT_LOAD_DATA_API, function () { var scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY)); var scrollSpysLength = scrollSpys.length; for (var i = scrollSpysLength; i--;) { - var $spy = $(scrollSpys[i]); + var $spy = $__default['default'](scrollSpys[i]); ScrollSpy._jQueryInterface.call($spy, $spy.data()); } @@ -301,11 +303,11 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME] = ScrollSpy._jQueryInterface; - $.fn[NAME].Constructor = ScrollSpy; + $__default['default'].fn[NAME] = ScrollSpy._jQueryInterface; + $__default['default'].fn[NAME].Constructor = ScrollSpy; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; + $__default['default'].fn[NAME].noConflict = function () { + $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT; return ScrollSpy._jQueryInterface; }; diff --git a/npm_assets/node_modules/bootstrap/js/dist/scrollspy.js.map b/npm_assets/node_modules/bootstrap/js/dist/scrollspy.js.map index 66fba90927..0281b63d53 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/scrollspy.js.map +++ b/npm_assets/node_modules/bootstrap/js/dist/scrollspy.js.map @@ -1 +1 @@ -{"version":3,"file":"scrollspy.js","sources":["../src/scrollspy.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset : 10,\n method : 'auto',\n target : ''\n}\n\nconst DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(EVENT_SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? METHOD_OFFSET : METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map((selector) => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN)\n .find(SELECTOR_DROPDOWN_TOGGLE)\n .addClass(CLASS_NAME_ACTIVE)\n $link.addClass(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .addClass(CLASS_NAME_ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(SELECTOR_NAV_ITEMS)\n .children(SELECTOR_NAV_LINKS)\n .addClass(CLASS_NAME_ACTIVE)\n }\n\n $(this._scrollElement).trigger(EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n [].slice.call(document.querySelectorAll(this._selector))\n .filter((node) => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach((node) => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY))\n const scrollSpysLength = scrollSpys.length\n\n for (let i = scrollSpysLength; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = ScrollSpy._jQueryInterface\n$.fn[NAME].Constructor = ScrollSpy\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n}\n\nexport default ScrollSpy\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","Default","offset","method","target","DefaultType","EVENT_ACTIVATE","EVENT_SCROLL","EVENT_LOAD_DATA_API","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_ITEMS","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","element","config","_element","_scrollElement","tagName","window","_config","_getConfig","_selector","_offsets","_targets","_activeTarget","_scrollHeight","on","event","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","slice","call","document","querySelectorAll","map","targetSelector","Util","getSelectorFromElement","querySelector","targetBCR","getBoundingClientRect","width","height","top","filter","item","sort","a","b","forEach","push","dispose","removeData","off","isElement","id","attr","getUID","typeCheckConfig","pageYOffset","scrollTop","scrollHeight","Math","max","body","documentElement","_getOffsetHeight","innerHeight","maxScroll","length","_activate","_clear","i","isActiveTarget","queries","split","selector","$link","join","hasClass","closest","find","addClass","parents","prev","children","trigger","relatedTarget","node","classList","contains","remove","_jQueryInterface","each","data","TypeError","scrollSpys","scrollSpysLength","$spy","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"scrollspy.js","sources":["../src/scrollspy.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(EVENT_SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET : METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod : this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN)\n .find(SELECTOR_DROPDOWN_TOGGLE)\n .addClass(CLASS_NAME_ACTIVE)\n $link.addClass(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .addClass(CLASS_NAME_ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(SELECTOR_NAV_ITEMS)\n .children(SELECTOR_NAV_LINKS)\n .addClass(CLASS_NAME_ACTIVE)\n }\n\n $(this._scrollElement).trigger(EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n [].slice.call(document.querySelectorAll(this._selector))\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY))\n const scrollSpysLength = scrollSpys.length\n\n for (let i = scrollSpysLength; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = ScrollSpy._jQueryInterface\n$.fn[NAME].Constructor = ScrollSpy\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n}\n\nexport default ScrollSpy\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","Default","offset","method","target","DefaultType","EVENT_ACTIVATE","EVENT_SCROLL","EVENT_LOAD_DATA_API","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_ITEMS","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","element","config","_element","_scrollElement","tagName","window","_config","_getConfig","_selector","_offsets","_targets","_activeTarget","_scrollHeight","on","event","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","slice","call","document","querySelectorAll","map","targetSelector","Util","getSelectorFromElement","querySelector","targetBCR","getBoundingClientRect","width","height","top","filter","item","sort","a","b","forEach","push","dispose","removeData","off","isElement","id","attr","getUID","typeCheckConfig","pageYOffset","scrollTop","scrollHeight","Math","max","body","documentElement","_getOffsetHeight","innerHeight","maxScroll","length","_activate","_clear","i","isActiveTarget","queries","split","selector","$link","join","hasClass","closest","find","addClass","parents","prev","children","trigger","relatedTarget","node","classList","contains","remove","_jQueryInterface","each","data","TypeError","scrollSpys","scrollSpysLength","$spy","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/js/dist/tab.js b/npm_assets/node_modules/bootstrap/js/dist/tab.js index 34a4a6f387..84d6169bde 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/tab.js +++ b/npm_assets/node_modules/bootstrap/js/dist/tab.js @@ -1,5 +1,5 @@ /*! - * Bootstrap tab.js v4.5.2 (https://getbootstrap.com/) + * Bootstrap tab.js v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -9,8 +9,10 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tab = factory(global.jQuery, global.Util)); }(this, (function ($, Util) { 'use strict'; - $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $; - Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util; + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var $__default = /*#__PURE__*/_interopDefaultLegacy($); + var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util); function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } @@ -22,11 +24,11 @@ */ var NAME = 'tab'; - var VERSION = '4.5.2'; + var VERSION = '4.5.3'; var DATA_KEY = 'bs.tab'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; - var JQUERY_NO_CONFLICT = $.fn[NAME]; + var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME]; var EVENT_HIDE = "hide" + EVENT_KEY; var EVENT_HIDDEN = "hidden" + EVENT_KEY; var EVENT_SHOW = "show" + EVENT_KEY; @@ -62,33 +64,33 @@ _proto.show = function show() { var _this = this; - if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(CLASS_NAME_ACTIVE) || $(this._element).hasClass(CLASS_NAME_DISABLED)) { + if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $__default['default'](this._element).hasClass(CLASS_NAME_ACTIVE) || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED)) { return; } var target; var previous; - var listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP)[0]; - var selector = Util.getSelectorFromElement(this._element); + var listElement = $__default['default'](this._element).closest(SELECTOR_NAV_LIST_GROUP)[0]; + var selector = Util__default['default'].getSelectorFromElement(this._element); if (listElement) { var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE; - previous = $.makeArray($(listElement).find(itemSelector)); + previous = $__default['default'].makeArray($__default['default'](listElement).find(itemSelector)); previous = previous[previous.length - 1]; } - var hideEvent = $.Event(EVENT_HIDE, { + var hideEvent = $__default['default'].Event(EVENT_HIDE, { relatedTarget: this._element }); - var showEvent = $.Event(EVENT_SHOW, { + var showEvent = $__default['default'].Event(EVENT_SHOW, { relatedTarget: previous }); if (previous) { - $(previous).trigger(hideEvent); + $__default['default'](previous).trigger(hideEvent); } - $(this._element).trigger(showEvent); + $__default['default'](this._element).trigger(showEvent); if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) { return; @@ -101,14 +103,14 @@ this._activate(this._element, listElement); var complete = function complete() { - var hiddenEvent = $.Event(EVENT_HIDDEN, { + var hiddenEvent = $__default['default'].Event(EVENT_HIDDEN, { relatedTarget: _this._element }); - var shownEvent = $.Event(EVENT_SHOWN, { + var shownEvent = $__default['default'].Event(EVENT_SHOWN, { relatedTarget: previous }); - $(previous).trigger(hiddenEvent); - $(_this._element).trigger(shownEvent); + $__default['default'](previous).trigger(hiddenEvent); + $__default['default'](_this._element).trigger(shownEvent); }; if (target) { @@ -119,7 +121,7 @@ }; _proto.dispose = function dispose() { - $.removeData(this._element, DATA_KEY); + $__default['default'].removeData(this._element, DATA_KEY); this._element = null; } // Private ; @@ -127,17 +129,17 @@ _proto._activate = function _activate(element, container, callback) { var _this2 = this; - var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $(container).find(SELECTOR_ACTIVE_UL) : $(container).children(SELECTOR_ACTIVE); + var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $__default['default'](container).find(SELECTOR_ACTIVE_UL) : $__default['default'](container).children(SELECTOR_ACTIVE); var active = activeElements[0]; - var isTransitioning = callback && active && $(active).hasClass(CLASS_NAME_FADE); + var isTransitioning = callback && active && $__default['default'](active).hasClass(CLASS_NAME_FADE); var complete = function complete() { return _this2._transitionComplete(element, active, callback); }; if (active && isTransitioning) { - var transitionDuration = Util.getTransitionDurationFromElement(active); - $(active).removeClass(CLASS_NAME_SHOW).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + var transitionDuration = Util__default['default'].getTransitionDurationFromElement(active); + $__default['default'](active).removeClass(CLASS_NAME_SHOW).one(Util__default['default'].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); } else { complete(); } @@ -145,11 +147,11 @@ _proto._transitionComplete = function _transitionComplete(element, active, callback) { if (active) { - $(active).removeClass(CLASS_NAME_ACTIVE); - var dropdownChild = $(active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0]; + $__default['default'](active).removeClass(CLASS_NAME_ACTIVE); + var dropdownChild = $__default['default'](active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0]; if (dropdownChild) { - $(dropdownChild).removeClass(CLASS_NAME_ACTIVE); + $__default['default'](dropdownChild).removeClass(CLASS_NAME_ACTIVE); } if (active.getAttribute('role') === 'tab') { @@ -157,24 +159,24 @@ } } - $(element).addClass(CLASS_NAME_ACTIVE); + $__default['default'](element).addClass(CLASS_NAME_ACTIVE); if (element.getAttribute('role') === 'tab') { element.setAttribute('aria-selected', true); } - Util.reflow(element); + Util__default['default'].reflow(element); if (element.classList.contains(CLASS_NAME_FADE)) { element.classList.add(CLASS_NAME_SHOW); } - if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) { - var dropdownElement = $(element).closest(SELECTOR_DROPDOWN)[0]; + if (element.parentNode && $__default['default'](element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) { + var dropdownElement = $__default['default'](element).closest(SELECTOR_DROPDOWN)[0]; if (dropdownElement) { var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE)); - $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE); + $__default['default'](dropdownToggleList).addClass(CLASS_NAME_ACTIVE); } element.setAttribute('aria-expanded', true); @@ -188,7 +190,7 @@ Tab._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var $this = $(this); + var $this = $__default['default'](this); var data = $this.data(DATA_KEY); if (!data) { @@ -222,10 +224,10 @@ */ - $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { + $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { event.preventDefault(); - Tab._jQueryInterface.call($(this), 'show'); + Tab._jQueryInterface.call($__default['default'](this), 'show'); }); /** * ------------------------------------------------------------------------ @@ -233,11 +235,11 @@ * ------------------------------------------------------------------------ */ - $.fn[NAME] = Tab._jQueryInterface; - $.fn[NAME].Constructor = Tab; + $__default['default'].fn[NAME] = Tab._jQueryInterface; + $__default['default'].fn[NAME].Constructor = Tab; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; + $__default['default'].fn[NAME].noConflict = function () { + $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT; return Tab._jQueryInterface; }; diff --git a/npm_assets/node_modules/bootstrap/js/dist/tab.js.map b/npm_assets/node_modules/bootstrap/js/dist/tab.js.map index 00d6081823..2890e97653 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/tab.js.map +++ b/npm_assets/node_modules/bootstrap/js/dist/tab.js.map @@ -1 +1 @@ -{"version":3,"file":"tab.js","sources":["../src/tab.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = '> li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(CLASS_NAME_ACTIVE) ||\n $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(EVENT_HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL')\n ? $(container).find(SELECTOR_ACTIVE_UL)\n : $(container).children(SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && $(active).hasClass(CLASS_NAME_FADE))\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .removeClass(CLASS_NAME_SHOW)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(CLASS_NAME_ACTIVE)\n\n const dropdownChild = $(active.parentNode).find(\n SELECTOR_DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(SELECTOR_DROPDOWN)[0]\n\n if (dropdownElement) {\n const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE))\n\n $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tab._jQueryInterface\n$.fn[NAME].Constructor = Tab\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n}\n\nexport default Tab\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK_DATA_API","CLASS_NAME_DROPDOWN_MENU","CLASS_NAME_ACTIVE","CLASS_NAME_DISABLED","CLASS_NAME_FADE","CLASS_NAME_SHOW","SELECTOR_DROPDOWN","SELECTOR_NAV_LIST_GROUP","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","SELECTOR_DATA_TOGGLE","SELECTOR_DROPDOWN_TOGGLE","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","element","_element","show","parentNode","nodeType","Node","ELEMENT_NODE","hasClass","target","previous","listElement","closest","selector","Util","getSelectorFromElement","itemSelector","nodeName","makeArray","find","length","hideEvent","Event","relatedTarget","showEvent","trigger","isDefaultPrevented","document","querySelector","_activate","complete","hiddenEvent","shownEvent","dispose","removeData","container","callback","activeElements","children","active","isTransitioning","_transitionComplete","transitionDuration","getTransitionDurationFromElement","removeClass","one","TRANSITION_END","emulateTransitionEnd","dropdownChild","getAttribute","setAttribute","addClass","reflow","classList","contains","add","dropdownElement","dropdownToggleList","slice","call","querySelectorAll","_jQueryInterface","config","each","$this","data","TypeError","on","event","preventDefault","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"tab.js","sources":["../src/tab.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = '> li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(CLASS_NAME_ACTIVE) ||\n $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(EVENT_HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n $(container).find(SELECTOR_ACTIVE_UL) :\n $(container).children(SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && $(active).hasClass(CLASS_NAME_FADE))\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .removeClass(CLASS_NAME_SHOW)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(CLASS_NAME_ACTIVE)\n\n const dropdownChild = $(active.parentNode).find(\n SELECTOR_DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(SELECTOR_DROPDOWN)[0]\n\n if (dropdownElement) {\n const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE))\n\n $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tab._jQueryInterface\n$.fn[NAME].Constructor = Tab\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n}\n\nexport default Tab\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK_DATA_API","CLASS_NAME_DROPDOWN_MENU","CLASS_NAME_ACTIVE","CLASS_NAME_DISABLED","CLASS_NAME_FADE","CLASS_NAME_SHOW","SELECTOR_DROPDOWN","SELECTOR_NAV_LIST_GROUP","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","SELECTOR_DATA_TOGGLE","SELECTOR_DROPDOWN_TOGGLE","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","element","_element","show","parentNode","nodeType","Node","ELEMENT_NODE","hasClass","target","previous","listElement","closest","selector","Util","getSelectorFromElement","itemSelector","nodeName","makeArray","find","length","hideEvent","Event","relatedTarget","showEvent","trigger","isDefaultPrevented","document","querySelector","_activate","complete","hiddenEvent","shownEvent","dispose","removeData","container","callback","activeElements","children","active","isTransitioning","_transitionComplete","transitionDuration","getTransitionDurationFromElement","removeClass","one","TRANSITION_END","emulateTransitionEnd","dropdownChild","getAttribute","setAttribute","addClass","reflow","classList","contains","add","dropdownElement","dropdownToggleList","slice","call","querySelectorAll","_jQueryInterface","config","each","$this","data","TypeError","on","event","preventDefault","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/js/dist/toast.js b/npm_assets/node_modules/bootstrap/js/dist/toast.js index 811530a066..f74f29d46a 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/toast.js +++ b/npm_assets/node_modules/bootstrap/js/dist/toast.js @@ -1,5 +1,5 @@ /*! - * Bootstrap toast.js v4.5.2 (https://getbootstrap.com/) + * Bootstrap toast.js v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -9,8 +9,10 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Toast = factory(global.jQuery, global.Util)); }(this, (function ($, Util) { 'use strict'; - $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $; - Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util; + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var $__default = /*#__PURE__*/_interopDefaultLegacy($); + var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util); function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } @@ -24,10 +26,10 @@ */ var NAME = 'toast'; - var VERSION = '4.5.2'; + var VERSION = '4.5.3'; var DATA_KEY = 'bs.toast'; var EVENT_KEY = "." + DATA_KEY; - var JQUERY_NO_CONFLICT = $.fn[NAME]; + var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME]; var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY; var EVENT_HIDE = "hide" + EVENT_KEY; var EVENT_HIDDEN = "hidden" + EVENT_KEY; @@ -70,8 +72,8 @@ _proto.show = function show() { var _this = this; - var showEvent = $.Event(EVENT_SHOW); - $(this._element).trigger(showEvent); + var showEvent = $__default['default'].Event(EVENT_SHOW); + $__default['default'](this._element).trigger(showEvent); if (showEvent.isDefaultPrevented()) { return; @@ -88,7 +90,7 @@ _this._element.classList.add(CLASS_NAME_SHOW); - $(_this._element).trigger(EVENT_SHOWN); + $__default['default'](_this._element).trigger(EVENT_SHOWN); if (_this._config.autohide) { _this._timeout = setTimeout(function () { @@ -99,13 +101,13 @@ this._element.classList.remove(CLASS_NAME_HIDE); - Util.reflow(this._element); + Util__default['default'].reflow(this._element); this._element.classList.add(CLASS_NAME_SHOWING); if (this._config.animation) { - var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element); + $__default['default'](this._element).one(Util__default['default'].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); } else { complete(); } @@ -116,8 +118,8 @@ return; } - var hideEvent = $.Event(EVENT_HIDE); - $(this._element).trigger(hideEvent); + var hideEvent = $__default['default'].Event(EVENT_HIDE); + $__default['default'](this._element).trigger(hideEvent); if (hideEvent.isDefaultPrevented()) { return; @@ -133,23 +135,23 @@ this._element.classList.remove(CLASS_NAME_SHOW); } - $(this._element).off(EVENT_CLICK_DISMISS); - $.removeData(this._element, DATA_KEY); + $__default['default'](this._element).off(EVENT_CLICK_DISMISS); + $__default['default'].removeData(this._element, DATA_KEY); this._element = null; this._config = null; } // Private ; _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default, $(this._element).data(), typeof config === 'object' && config ? config : {}); - Util.typeCheckConfig(NAME, config, this.constructor.DefaultType); + config = _extends({}, Default, $__default['default'](this._element).data(), typeof config === 'object' && config ? config : {}); + Util__default['default'].typeCheckConfig(NAME, config, this.constructor.DefaultType); return config; }; _proto._setListeners = function _setListeners() { var _this2 = this; - $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function () { + $__default['default'](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function () { return _this2.hide(); }); }; @@ -160,14 +162,14 @@ var complete = function complete() { _this3._element.classList.add(CLASS_NAME_HIDE); - $(_this3._element).trigger(EVENT_HIDDEN); + $__default['default'](_this3._element).trigger(EVENT_HIDDEN); }; this._element.classList.remove(CLASS_NAME_SHOW); if (this._config.animation) { - var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element); + $__default['default'](this._element).one(Util__default['default'].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); } else { complete(); } @@ -181,7 +183,7 @@ Toast._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var $element = $(this); + var $element = $__default['default'](this); var data = $element.data(DATA_KEY); var _config = typeof config === 'object' && config; @@ -227,11 +229,11 @@ */ - $.fn[NAME] = Toast._jQueryInterface; - $.fn[NAME].Constructor = Toast; + $__default['default'].fn[NAME] = Toast._jQueryInterface; + $__default['default'].fn[NAME].Constructor = Toast; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; + $__default['default'].fn[NAME].noConflict = function () { + $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT; return Toast._jQueryInterface; }; diff --git a/npm_assets/node_modules/bootstrap/js/dist/toast.js.map b/npm_assets/node_modules/bootstrap/js/dist/toast.js.map index c1691e4ca1..71675b7c3b 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/toast.js.map +++ b/npm_assets/node_modules/bootstrap/js/dist/toast.js.map @@ -1 +1 @@ -{"version":3,"file":"toast.js","sources":["../src/toast.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation : 'boolean',\n autohide : 'boolean',\n delay : 'number'\n}\n\nconst Default = {\n animation : true,\n autohide : true,\n delay : 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = $.Event(EVENT_SHOW)\n\n $(this._element).trigger(showEvent)\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n $(this._element).trigger(EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n Util.reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._close()\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n\n $.removeData(this._element, DATA_KEY)\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...$(this._element).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE)\n $(this._element).trigger(EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Toast._jQueryInterface\n$.fn[NAME].Constructor = Toast\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n}\n\nexport default Toast\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","EVENT_CLICK_DISMISS","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","CLASS_NAME_FADE","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_SHOWING","DefaultType","animation","autohide","delay","Default","SELECTOR_DATA_DISMISS","Toast","element","config","_element","_config","_getConfig","_timeout","_setListeners","show","showEvent","Event","trigger","isDefaultPrevented","_clearTimeout","classList","add","complete","remove","setTimeout","hide","Util","reflow","transitionDuration","getTransitionDurationFromElement","one","TRANSITION_END","emulateTransitionEnd","contains","hideEvent","_close","dispose","off","removeData","data","typeCheckConfig","constructor","on","clearTimeout","_jQueryInterface","each","$element","TypeError","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"toast.js","sources":["../src/toast.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = $.Event(EVENT_SHOW)\n\n $(this._element).trigger(showEvent)\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n $(this._element).trigger(EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n Util.reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._close()\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n\n $.removeData(this._element, DATA_KEY)\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...$(this._element).data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE)\n $(this._element).trigger(EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Toast._jQueryInterface\n$.fn[NAME].Constructor = Toast\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n}\n\nexport default Toast\n"],"names":["NAME","VERSION","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","EVENT_CLICK_DISMISS","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","CLASS_NAME_FADE","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_SHOWING","DefaultType","animation","autohide","delay","Default","SELECTOR_DATA_DISMISS","Toast","element","config","_element","_config","_getConfig","_timeout","_setListeners","show","showEvent","Event","trigger","isDefaultPrevented","_clearTimeout","classList","add","complete","remove","setTimeout","hide","Util","reflow","transitionDuration","getTransitionDurationFromElement","one","TRANSITION_END","emulateTransitionEnd","contains","hideEvent","_close","dispose","off","removeData","data","typeCheckConfig","constructor","on","clearTimeout","_jQueryInterface","each","$element","TypeError","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/js/dist/tooltip.js b/npm_assets/node_modules/bootstrap/js/dist/tooltip.js index 5d1713611a..663337862f 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/tooltip.js +++ b/npm_assets/node_modules/bootstrap/js/dist/tooltip.js @@ -1,5 +1,5 @@ /*! - * Bootstrap tooltip.js v4.5.2 (https://getbootstrap.com/) + * Bootstrap tooltip.js v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -9,13 +9,15 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tooltip = factory(global.jQuery, global.Popper, global.Util)); }(this, (function ($, Popper, Util) { 'use strict'; - $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $; - Popper = Popper && Object.prototype.hasOwnProperty.call(Popper, 'default') ? Popper['default'] : Popper; - Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util; + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var $__default = /*#__PURE__*/_interopDefaultLegacy($); + var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper); + var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util); /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): tools/sanitizer.js + * Bootstrap (v4.5.3): tools/sanitizer.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -146,10 +148,10 @@ */ var NAME = 'tooltip'; - var VERSION = '4.5.2'; + var VERSION = '4.5.3'; var DATA_KEY = 'bs.tooltip'; var EVENT_KEY = "." + DATA_KEY; - var JQUERY_NO_CONFLICT = $.fn[NAME]; + var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME]; var CLASS_PREFIX = 'bs-tooltip'; var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']; @@ -226,7 +228,7 @@ var Tooltip = /*#__PURE__*/function () { function Tooltip(element, config) { - if (typeof Popper === 'undefined') { + if (typeof Popper__default['default'] === 'undefined') { throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org/)'); } // private @@ -267,11 +269,11 @@ if (event) { var dataKey = this.constructor.DATA_KEY; - var context = $(event.currentTarget).data(dataKey); + var context = $__default['default'](event.currentTarget).data(dataKey); if (!context) { context = new this.constructor(event.currentTarget, this._getDelegateConfig()); - $(event.currentTarget).data(dataKey, context); + $__default['default'](event.currentTarget).data(dataKey, context); } context._activeTrigger.click = !context._activeTrigger.click; @@ -282,7 +284,7 @@ context._leave(null, context); } } else { - if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW)) { + if ($__default['default'](this.getTipElement()).hasClass(CLASS_NAME_SHOW)) { this._leave(null, this); return; @@ -294,12 +296,12 @@ _proto.dispose = function dispose() { clearTimeout(this._timeout); - $.removeData(this.element, this.constructor.DATA_KEY); - $(this.element).off(this.constructor.EVENT_KEY); - $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler); + $__default['default'].removeData(this.element, this.constructor.DATA_KEY); + $__default['default'](this.element).off(this.constructor.EVENT_KEY); + $__default['default'](this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler); if (this.tip) { - $(this.tip).remove(); + $__default['default'](this.tip).remove(); } this._isEnabled = null; @@ -320,29 +322,29 @@ _proto.show = function show() { var _this = this; - if ($(this.element).css('display') === 'none') { + if ($__default['default'](this.element).css('display') === 'none') { throw new Error('Please use show on visible elements'); } - var showEvent = $.Event(this.constructor.Event.SHOW); + var showEvent = $__default['default'].Event(this.constructor.Event.SHOW); if (this.isWithContent() && this._isEnabled) { - $(this.element).trigger(showEvent); - var shadowRoot = Util.findShadowRoot(this.element); - var isInTheDom = $.contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element); + $__default['default'](this.element).trigger(showEvent); + var shadowRoot = Util__default['default'].findShadowRoot(this.element); + var isInTheDom = $__default['default'].contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element); if (showEvent.isDefaultPrevented() || !isInTheDom) { return; } var tip = this.getTipElement(); - var tipId = Util.getUID(this.constructor.NAME); + var tipId = Util__default['default'].getUID(this.constructor.NAME); tip.setAttribute('id', tipId); this.element.setAttribute('aria-describedby', tipId); this.setContent(); if (this.config.animation) { - $(tip).addClass(CLASS_NAME_FADE); + $__default['default'](tip).addClass(CLASS_NAME_FADE); } var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement; @@ -353,21 +355,21 @@ var container = this._getContainer(); - $(tip).data(this.constructor.DATA_KEY, this); + $__default['default'](tip).data(this.constructor.DATA_KEY, this); - if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) { - $(tip).appendTo(container); + if (!$__default['default'].contains(this.element.ownerDocument.documentElement, this.tip)) { + $__default['default'](tip).appendTo(container); } - $(this.element).trigger(this.constructor.Event.INSERTED); - this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment)); - $(tip).addClass(CLASS_NAME_SHOW); // If this is a touch-enabled device we add extra + $__default['default'](this.element).trigger(this.constructor.Event.INSERTED); + this._popper = new Popper__default['default'](this.element, tip, this._getPopperConfig(attachment)); + $__default['default'](tip).addClass(CLASS_NAME_SHOW); // If this is a touch-enabled device we add extra // empty mouseover listeners to the body's immediate children; // only needed because of broken event delegation on iOS // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html if ('ontouchstart' in document.documentElement) { - $(document.body).children().on('mouseover', null, $.noop); + $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop); } var complete = function complete() { @@ -377,16 +379,16 @@ var prevHoverState = _this._hoverState; _this._hoverState = null; - $(_this.element).trigger(_this.constructor.Event.SHOWN); + $__default['default'](_this.element).trigger(_this.constructor.Event.SHOWN); if (prevHoverState === HOVER_STATE_OUT) { _this._leave(null, _this); } }; - if ($(this.tip).hasClass(CLASS_NAME_FADE)) { - var transitionDuration = Util.getTransitionDurationFromElement(this.tip); - $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + if ($__default['default'](this.tip).hasClass(CLASS_NAME_FADE)) { + var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this.tip); + $__default['default'](this.tip).one(Util__default['default'].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); } else { complete(); } @@ -397,7 +399,7 @@ var _this2 = this; var tip = this.getTipElement(); - var hideEvent = $.Event(this.constructor.Event.HIDE); + var hideEvent = $__default['default'].Event(this.constructor.Event.HIDE); var complete = function complete() { if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) { @@ -408,7 +410,7 @@ _this2.element.removeAttribute('aria-describedby'); - $(_this2.element).trigger(_this2.constructor.Event.HIDDEN); + $__default['default'](_this2.element).trigger(_this2.constructor.Event.HIDDEN); if (_this2._popper !== null) { _this2._popper.destroy(); @@ -419,26 +421,26 @@ } }; - $(this.element).trigger(hideEvent); + $__default['default'](this.element).trigger(hideEvent); if (hideEvent.isDefaultPrevented()) { return; } - $(tip).removeClass(CLASS_NAME_SHOW); // If this is a touch-enabled device we remove the extra + $__default['default'](tip).removeClass(CLASS_NAME_SHOW); // If this is a touch-enabled device we remove the extra // empty mouseover listeners we added for iOS support if ('ontouchstart' in document.documentElement) { - $(document.body).children().off('mouseover', null, $.noop); + $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop); } this._activeTrigger[TRIGGER_CLICK] = false; this._activeTrigger[TRIGGER_FOCUS] = false; this._activeTrigger[TRIGGER_HOVER] = false; - if ($(this.tip).hasClass(CLASS_NAME_FADE)) { - var transitionDuration = Util.getTransitionDurationFromElement(tip); - $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); + if ($__default['default'](this.tip).hasClass(CLASS_NAME_FADE)) { + var transitionDuration = Util__default['default'].getTransitionDurationFromElement(tip); + $__default['default'](tip).one(Util__default['default'].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); } else { complete(); } @@ -458,29 +460,29 @@ }; _proto.addAttachmentClass = function addAttachmentClass(attachment) { - $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment); + $__default['default'](this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment); }; _proto.getTipElement = function getTipElement() { - this.tip = this.tip || $(this.config.template)[0]; + this.tip = this.tip || $__default['default'](this.config.template)[0]; return this.tip; }; _proto.setContent = function setContent() { var tip = this.getTipElement(); - this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle()); - $(tip).removeClass(CLASS_NAME_FADE + " " + CLASS_NAME_SHOW); + this.setElementContent($__default['default'](tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle()); + $__default['default'](tip).removeClass(CLASS_NAME_FADE + " " + CLASS_NAME_SHOW); }; _proto.setElementContent = function setElementContent($element, content) { if (typeof content === 'object' && (content.nodeType || content.jquery)) { // Content is a DOM node or a jQuery if (this.config.html) { - if (!$(content).parent().is($element)) { + if (!$__default['default'](content).parent().is($element)) { $element.empty().append(content); } } else { - $element.text($(content).text()); + $element.text($__default['default'](content).text()); } return; @@ -559,11 +561,11 @@ return document.body; } - if (Util.isElement(this.config.container)) { - return $(this.config.container); + if (Util__default['default'].isElement(this.config.container)) { + return $__default['default'](this.config.container); } - return $(document).find(this.config.container); + return $__default['default'](document).find(this.config.container); }; _proto._getAttachment = function _getAttachment(placement) { @@ -576,13 +578,13 @@ var triggers = this.config.trigger.split(' '); triggers.forEach(function (trigger) { if (trigger === 'click') { - $(_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) { + $__default['default'](_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) { return _this5.toggle(event); }); } else if (trigger !== TRIGGER_MANUAL) { var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN; var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT; - $(_this5.element).on(eventIn, _this5.config.selector, function (event) { + $__default['default'](_this5.element).on(eventIn, _this5.config.selector, function (event) { return _this5._enter(event); }).on(eventOut, _this5.config.selector, function (event) { return _this5._leave(event); @@ -596,7 +598,7 @@ } }; - $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler); + $__default['default'](this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler); if (this.config.selector) { this.config = _extends({}, this.config, { @@ -619,18 +621,18 @@ _proto._enter = function _enter(event, context) { var dataKey = this.constructor.DATA_KEY; - context = context || $(event.currentTarget).data(dataKey); + context = context || $__default['default'](event.currentTarget).data(dataKey); if (!context) { context = new this.constructor(event.currentTarget, this._getDelegateConfig()); - $(event.currentTarget).data(dataKey, context); + $__default['default'](event.currentTarget).data(dataKey, context); } if (event) { context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; } - if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) { + if ($__default['default'](context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) { context._hoverState = HOVER_STATE_SHOW; return; } @@ -652,11 +654,11 @@ _proto._leave = function _leave(event, context) { var dataKey = this.constructor.DATA_KEY; - context = context || $(event.currentTarget).data(dataKey); + context = context || $__default['default'](event.currentTarget).data(dataKey); if (!context) { context = new this.constructor(event.currentTarget, this._getDelegateConfig()); - $(event.currentTarget).data(dataKey, context); + $__default['default'](event.currentTarget).data(dataKey, context); } if (event) { @@ -693,7 +695,7 @@ }; _proto._getConfig = function _getConfig(config) { - var dataAttributes = $(this.element).data(); + var dataAttributes = $__default['default'](this.element).data(); Object.keys(dataAttributes).forEach(function (dataAttr) { if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) { delete dataAttributes[dataAttr]; @@ -716,7 +718,7 @@ config.content = config.content.toString(); } - Util.typeCheckConfig(NAME, config, this.constructor.DefaultType); + Util__default['default'].typeCheckConfig(NAME, config, this.constructor.DefaultType); if (config.sanitize) { config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn); @@ -740,7 +742,7 @@ }; _proto._cleanTipClass = function _cleanTipClass() { - var $tip = $(this.getTipElement()); + var $tip = $__default['default'](this.getTipElement()); var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX); if (tabClass !== null && tabClass.length) { @@ -764,7 +766,7 @@ return; } - $(tip).removeClass(CLASS_NAME_FADE); + $__default['default'](tip).removeClass(CLASS_NAME_FADE); this.config.animation = false; this.hide(); this.show(); @@ -774,7 +776,8 @@ Tooltip._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - var data = $(this).data(DATA_KEY); + var $element = $__default['default'](this); + var data = $element.data(DATA_KEY); var _config = typeof config === 'object' && config; @@ -784,7 +787,7 @@ if (!data) { data = new Tooltip(this, _config); - $(this).data(DATA_KEY, data); + $element.data(DATA_KEY, data); } if (typeof config === 'string') { @@ -843,11 +846,11 @@ */ - $.fn[NAME] = Tooltip._jQueryInterface; - $.fn[NAME].Constructor = Tooltip; + $__default['default'].fn[NAME] = Tooltip._jQueryInterface; + $__default['default'].fn[NAME].Constructor = Tooltip; - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT; + $__default['default'].fn[NAME].noConflict = function () { + $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT; return Tooltip._jQueryInterface; }; diff --git a/npm_assets/node_modules/bootstrap/js/dist/tooltip.js.map b/npm_assets/node_modules/bootstrap/js/dist/tooltip.js.map index d133b85b8b..b48d5030b5 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/tooltip.js.map +++ b/npm_assets/node_modules/bootstrap/js/dist/tooltip.js.map @@ -1 +1 @@ -{"version":3,"file":"tooltip.js","sources":["../src/tools/sanitizer.js","../src/tooltip.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nfunction allowedAttribute(attr, allowedAttributeList) {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].slice.call(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].slice.call(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach((attr) => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string|function)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)',\n sanitize : 'boolean',\n sanitizeFn : '(null|function)',\n whiteList : 'object',\n popperConfig : '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n}\n\nconst Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent',\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist,\n popperConfig : null\n}\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_ARROW = '.arrow'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const shadowRoot = Util.findShadowRoot(this.element)\n const isInTheDom = $.contains(\n shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n $(tip).addClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n $element.html(content)\n } else {\n $element.text(content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: SELECTOR_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (Util.isElement(this.config.container)) {\n return $(this.config.container)\n }\n\n return $(document).find(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(eventIn, this.config.selector, (event) => this._enter(event))\n .on(eventOut, this.config.selector, (event) => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = $(this.element).data()\n\n Object.keys(dataAttributes)\n .forEach((dataAttr) => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n"],"names":["uriAttrs","ARIA_ATTRIBUTE_PATTERN","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","i","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","toLowerCase","indexOf","Boolean","nodeValue","match","regExp","filter","attrRegex","RegExp","len","length","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","window","DOMParser","createdDocument","parseFromString","whitelistKeys","Object","keys","elements","slice","call","body","querySelectorAll","el","elName","parentNode","removeChild","attributeList","attributes","whitelistedAttributes","concat","forEach","removeAttribute","innerHTML","NAME","VERSION","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","DefaultType","animation","template","title","trigger","delay","html","selector","placement","offset","container","fallbackPlacement","boundary","sanitize","popperConfig","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default","HOVER_STATE_SHOW","HOVER_STATE_OUT","Event","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_FADE","CLASS_NAME_SHOW","SELECTOR_TOOLTIP_INNER","SELECTOR_ARROW","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","element","config","Popper","TypeError","_isEnabled","_timeout","_hoverState","_activeTrigger","_popper","_getConfig","tip","_setListeners","enable","disable","toggleEnabled","toggle","event","dataKey","constructor","context","currentTarget","data","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","hasClass","dispose","clearTimeout","removeData","off","closest","_hideModalHandler","remove","destroy","show","css","Error","showEvent","isWithContent","shadowRoot","Util","findShadowRoot","isInTheDom","contains","ownerDocument","documentElement","isDefaultPrevented","tipId","getUID","setAttribute","setContent","addClass","attachment","_getAttachment","addAttachmentClass","_getContainer","appendTo","_getPopperConfig","document","children","on","noop","complete","_fixTransition","prevHoverState","transitionDuration","getTransitionDurationFromElement","one","TRANSITION_END","emulateTransitionEnd","hide","callback","hideEvent","_cleanTipClass","removeClass","update","scheduleUpdate","getTitle","setElementContent","$element","content","nodeType","jquery","parent","is","empty","append","text","getAttribute","defaultBsConfig","modifiers","_getOffset","flip","behavior","arrow","preventOverflow","boundariesElement","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","offsets","isElement","find","toUpperCase","triggers","split","eventIn","eventOut","_fixTitle","titleType","type","setTimeout","dataAttributes","dataAttr","toString","typeCheckConfig","key","$tip","tabClass","join","popperData","instance","popper","initConfigAnimation","_jQueryInterface","each","_config","test","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"tooltip.js","sources":["../src/tools/sanitizer.js","../src/tooltip.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nfunction allowedAttribute(attr, allowedAttributeList) {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].slice.call(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].slice.call(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.5.3'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object',\n popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist,\n popperConfig: null\n}\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_ARROW = '.arrow'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const shadowRoot = Util.findShadowRoot(this.element)\n const isInTheDom = $.contains(\n shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n $(tip).addClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n $element.html(content)\n } else {\n $element.text(content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: SELECTOR_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this.config.offset(data.offsets, this.element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (Util.isElement(this.config.container)) {\n return $(this.config.container)\n }\n\n return $(document).find(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(eventIn, this.config.selector, event => this._enter(event))\n .on(eventOut, this.config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = $(this.element).data()\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n"],"names":["uriAttrs","ARIA_ATTRIBUTE_PATTERN","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","i","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","toLowerCase","indexOf","Boolean","nodeValue","match","regExp","filter","attrRegex","RegExp","len","length","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","window","DOMParser","createdDocument","parseFromString","whitelistKeys","Object","keys","elements","slice","call","body","querySelectorAll","el","elName","parentNode","removeChild","attributeList","attributes","whitelistedAttributes","concat","forEach","removeAttribute","innerHTML","NAME","VERSION","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","DefaultType","animation","template","title","trigger","delay","html","selector","placement","offset","container","fallbackPlacement","boundary","sanitize","popperConfig","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default","HOVER_STATE_SHOW","HOVER_STATE_OUT","Event","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_FADE","CLASS_NAME_SHOW","SELECTOR_TOOLTIP_INNER","SELECTOR_ARROW","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","element","config","Popper","TypeError","_isEnabled","_timeout","_hoverState","_activeTrigger","_popper","_getConfig","tip","_setListeners","enable","disable","toggleEnabled","toggle","event","dataKey","constructor","context","currentTarget","data","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","hasClass","dispose","clearTimeout","removeData","off","closest","_hideModalHandler","remove","destroy","show","css","Error","showEvent","isWithContent","shadowRoot","Util","findShadowRoot","isInTheDom","contains","ownerDocument","documentElement","isDefaultPrevented","tipId","getUID","setAttribute","setContent","addClass","attachment","_getAttachment","addAttachmentClass","_getContainer","appendTo","_getPopperConfig","document","children","on","noop","complete","_fixTransition","prevHoverState","transitionDuration","getTransitionDurationFromElement","one","TRANSITION_END","emulateTransitionEnd","hide","callback","hideEvent","_cleanTipClass","removeClass","update","scheduleUpdate","getTitle","setElementContent","$element","content","nodeType","jquery","parent","is","empty","append","text","getAttribute","defaultBsConfig","modifiers","_getOffset","flip","behavior","arrow","preventOverflow","boundariesElement","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","offsets","isElement","find","toUpperCase","triggers","split","eventIn","eventOut","_fixTitle","titleType","type","setTimeout","dataAttributes","dataAttr","toString","typeCheckConfig","key","$tip","tabClass","join","popperData","instance","popper","initConfigAnimation","_jQueryInterface","each","_config","test","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/js/dist/util.js b/npm_assets/node_modules/bootstrap/js/dist/util.js index 841704f8a0..e3b5c11800 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/util.js +++ b/npm_assets/node_modules/bootstrap/js/dist/util.js @@ -1,5 +1,5 @@ /*! - * Bootstrap util.js v4.5.2 (https://getbootstrap.com/) + * Bootstrap util.js v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -9,11 +9,13 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Util = factory(global.jQuery)); }(this, (function ($) { 'use strict'; - $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $; + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var $__default = /*#__PURE__*/_interopDefaultLegacy($); /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): util.js + * Bootstrap (v4.5.3): util.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -40,7 +42,7 @@ bindType: TRANSITION_END, delegateType: TRANSITION_END, handle: function handle(event) { - if ($(event.target).is(this)) { + if ($__default['default'](event.target).is(this)) { return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params } @@ -53,7 +55,7 @@ var _this = this; var called = false; - $(this).one(Util.TRANSITION_END, function () { + $__default['default'](this).one(Util.TRANSITION_END, function () { called = true; }); setTimeout(function () { @@ -65,8 +67,8 @@ } function setTransitionEndSupport() { - $.fn.emulateTransitionEnd = transitionEndEmulator; - $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent(); + $__default['default'].fn.emulateTransitionEnd = transitionEndEmulator; + $__default['default'].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent(); } /** * -------------------------------------------------------------------------- @@ -79,7 +81,6 @@ TRANSITION_END: 'bsTransitionEnd', getUID: function getUID(prefix) { do { - // eslint-disable-next-line no-bitwise prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here } while (document.getElementById(prefix)); @@ -95,7 +96,7 @@ try { return document.querySelector(selector) ? selector : null; - } catch (err) { + } catch (_) { return null; } }, @@ -105,8 +106,8 @@ } // Get transition-duration of the element - var transitionDuration = $(element).css('transition-duration'); - var transitionDelay = $(element).css('transition-delay'); + var transitionDuration = $__default['default'](element).css('transition-duration'); + var transitionDelay = $__default['default'](element).css('transition-delay'); var floatTransitionDuration = parseFloat(transitionDuration); var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found @@ -123,9 +124,8 @@ return element.offsetHeight; }, triggerTransitionEnd: function triggerTransitionEnd(element) { - $(element).trigger(TRANSITION_END); + $__default['default'](element).trigger(TRANSITION_END); }, - // TODO: Remove in v5 supportsTransitionEnd: function supportsTransitionEnd() { return Boolean(TRANSITION_END); }, @@ -168,11 +168,11 @@ return Util.findShadowRoot(element.parentNode); }, jQueryDetection: function jQueryDetection() { - if (typeof $ === 'undefined') { + if (typeof $__default['default'] === 'undefined') { throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.'); } - var version = $.fn.jquery.split(' ')[0].split('.'); + var version = $__default['default'].fn.jquery.split(' ')[0].split('.'); var minMajor = 1; var ltMajor = 2; var minMinor = 9; diff --git a/npm_assets/node_modules/bootstrap/js/dist/util.js.map b/npm_assets/node_modules/bootstrap/js/dist/util.js.map index d6e7cc26ca..246cf3d2e3 100644 --- a/npm_assets/node_modules/bootstrap/js/dist/util.js.map +++ b/npm_assets/node_modules/bootstrap/js/dist/util.js.map @@ -1 +1 @@ -{"version":3,"file":"util.js","sources":["../src/util.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n"],"names":["TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","bindType","delegateType","handle","event","$","target","is","handleObj","handler","apply","arguments","undefined","transitionEndEmulator","duration","called","one","Util","setTimeout","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","special","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","err","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","jquery","minMajor","ltMajor","minMinor","minPatch","maxMajor"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"util.js","sources":["../src/util.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n\n return undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (_) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value) ?\n 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n"],"names":["TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","bindType","delegateType","handle","event","$","target","is","handleObj","handler","apply","arguments","undefined","transitionEndEmulator","duration","called","one","Util","setTimeout","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","special","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","_","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","jquery","minMajor","ltMajor","minMinor","minPatch","maxMajor"],"mappings":"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"} \ No newline at end of file diff --git a/npm_assets/node_modules/bootstrap/js/src/alert.js b/npm_assets/node_modules/bootstrap/js/src/alert.js index 2cdb0f0238..421da7435a 100644 --- a/npm_assets/node_modules/bootstrap/js/src/alert.js +++ b/npm_assets/node_modules/bootstrap/js/src/alert.js @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): alert.js + * Bootstrap (v4.5.3): alert.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -14,22 +14,22 @@ import Util from './util' * ------------------------------------------------------------------------ */ -const NAME = 'alert' -const VERSION = '4.5.2' -const DATA_KEY = 'bs.alert' -const EVENT_KEY = `.${DATA_KEY}` -const DATA_API_KEY = '.data-api' -const JQUERY_NO_CONFLICT = $.fn[NAME] +const NAME = 'alert' +const VERSION = '4.5.3' +const DATA_KEY = 'bs.alert' +const EVENT_KEY = `.${DATA_KEY}` +const DATA_API_KEY = '.data-api' +const JQUERY_NO_CONFLICT = $.fn[NAME] const SELECTOR_DISMISS = '[data-dismiss="alert"]' -const EVENT_CLOSE = `close${EVENT_KEY}` -const EVENT_CLOSED = `closed${EVENT_KEY}` +const EVENT_CLOSE = `close${EVENT_KEY}` +const EVENT_CLOSED = `closed${EVENT_KEY}` const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}` const CLASS_NAME_ALERT = 'alert' -const CLASS_NAME_FADE = 'fade' -const CLASS_NAME_SHOW = 'show' +const CLASS_NAME_FADE = 'fade' +const CLASS_NAME_SHOW = 'show' /** * ------------------------------------------------------------------------ @@ -74,7 +74,7 @@ class Alert { _getRootElement(element) { const selector = Util.getSelectorFromElement(element) - let parent = false + let parent = false if (selector) { parent = document.querySelector(selector) @@ -105,7 +105,7 @@ class Alert { const transitionDuration = Util.getTransitionDurationFromElement(element) $(element) - .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event)) + .one(Util.TRANSITION_END, event => this._destroyElement(element, event)) .emulateTransitionEnd(transitionDuration) } @@ -121,7 +121,7 @@ class Alert { static _jQueryInterface(config) { return this.each(function () { const $element = $(this) - let data = $element.data(DATA_KEY) + let data = $element.data(DATA_KEY) if (!data) { data = new Alert(this) @@ -163,9 +163,9 @@ $(document).on( * ------------------------------------------------------------------------ */ -$.fn[NAME] = Alert._jQueryInterface +$.fn[NAME] = Alert._jQueryInterface $.fn[NAME].Constructor = Alert -$.fn[NAME].noConflict = () => { +$.fn[NAME].noConflict = () => { $.fn[NAME] = JQUERY_NO_CONFLICT return Alert._jQueryInterface } diff --git a/npm_assets/node_modules/bootstrap/js/src/button.js b/npm_assets/node_modules/bootstrap/js/src/button.js index 98fd8afce6..ec40af3333 100644 --- a/npm_assets/node_modules/bootstrap/js/src/button.js +++ b/npm_assets/node_modules/bootstrap/js/src/button.js @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): button.js + * Bootstrap (v4.5.3): button.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -13,29 +13,29 @@ import $ from 'jquery' * ------------------------------------------------------------------------ */ -const NAME = 'button' -const VERSION = '4.5.2' -const DATA_KEY = 'bs.button' -const EVENT_KEY = `.${DATA_KEY}` -const DATA_API_KEY = '.data-api' -const JQUERY_NO_CONFLICT = $.fn[NAME] +const NAME = 'button' +const VERSION = '4.5.3' +const DATA_KEY = 'bs.button' +const EVENT_KEY = `.${DATA_KEY}` +const DATA_API_KEY = '.data-api' +const JQUERY_NO_CONFLICT = $.fn[NAME] const CLASS_NAME_ACTIVE = 'active' const CLASS_NAME_BUTTON = 'btn' -const CLASS_NAME_FOCUS = 'focus' +const CLASS_NAME_FOCUS = 'focus' -const SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]' -const SELECTOR_DATA_TOGGLES = '[data-toggle="buttons"]' -const SELECTOR_DATA_TOGGLE = '[data-toggle="button"]' +const SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]' +const SELECTOR_DATA_TOGGLES = '[data-toggle="buttons"]' +const SELECTOR_DATA_TOGGLE = '[data-toggle="button"]' const SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle="buttons"] .btn' -const SELECTOR_INPUT = 'input:not([type="hidden"])' -const SELECTOR_ACTIVE = '.active' -const SELECTOR_BUTTON = '.btn' +const SELECTOR_INPUT = 'input:not([type="hidden"])' +const SELECTOR_ACTIVE = '.active' +const SELECTOR_BUTTON = '.btn' -const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}` +const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}` const EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` + `blur${EVENT_KEY}${DATA_API_KEY}` -const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}` +const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}` /** * ------------------------------------------------------------------------ @@ -46,6 +46,7 @@ const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}` class Button { constructor(element) { this._element = element + this.shouldAvoidTriggerChange = false } // Getters @@ -59,17 +60,14 @@ class Button { toggle() { let triggerChangeEvent = true let addAriaPressed = true - const rootElement = $(this._element).closest( - SELECTOR_DATA_TOGGLES - )[0] + const rootElement = $(this._element).closest(SELECTOR_DATA_TOGGLES)[0] if (rootElement) { const input = this._element.querySelector(SELECTOR_INPUT) if (input) { if (input.type === 'radio') { - if (input.checked && - this._element.classList.contains(CLASS_NAME_ACTIVE)) { + if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) { triggerChangeEvent = false } else { const activeElement = rootElement.querySelector(SELECTOR_ACTIVE) @@ -85,7 +83,10 @@ class Button { if (input.type === 'checkbox' || input.type === 'radio') { input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE) } - $(input).trigger('change') + + if (!this.shouldAvoidTriggerChange) { + $(input).trigger('change') + } } input.focus() @@ -95,8 +96,7 @@ class Button { if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) { if (addAriaPressed) { - this._element.setAttribute('aria-pressed', - !this._element.classList.contains(CLASS_NAME_ACTIVE)) + this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE)) } if (triggerChangeEvent) { @@ -112,15 +112,18 @@ class Button { // Static - static _jQueryInterface(config) { + static _jQueryInterface(config, avoidTriggerChange) { return this.each(function () { - let data = $(this).data(DATA_KEY) + const $element = $(this) + let data = $element.data(DATA_KEY) if (!data) { data = new Button(this) - $(this).data(DATA_KEY, data) + $element.data(DATA_KEY, data) } + data.shouldAvoidTriggerChange = avoidTriggerChange + if (config === 'toggle') { data[config]() } @@ -135,7 +138,7 @@ class Button { */ $(document) - .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => { + .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => { let button = event.target const initialButton = button @@ -153,12 +156,12 @@ $(document) return } - if (initialButton.tagName !== 'LABEL' || inputBtn && inputBtn.type !== 'checkbox') { - Button._jQueryInterface.call($(button), 'toggle') + if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') { + Button._jQueryInterface.call($(button), 'toggle', initialButton.tagName === 'INPUT') } } }) - .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => { + .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => { const button = $(event.target).closest(SELECTOR_BUTTON)[0] $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type)) }) diff --git a/npm_assets/node_modules/bootstrap/js/src/carousel.js b/npm_assets/node_modules/bootstrap/js/src/carousel.js index d18cc8a1a0..5f738fd927 100644 --- a/npm_assets/node_modules/bootstrap/js/src/carousel.js +++ b/npm_assets/node_modules/bootstrap/js/src/carousel.js @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): carousel.js + * Bootstrap (v4.5.3): carousel.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -14,75 +14,75 @@ import Util from './util' * ------------------------------------------------------------------------ */ -const NAME = 'carousel' -const VERSION = '4.5.2' -const DATA_KEY = 'bs.carousel' -const EVENT_KEY = `.${DATA_KEY}` -const DATA_API_KEY = '.data-api' -const JQUERY_NO_CONFLICT = $.fn[NAME] -const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key -const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key +const NAME = 'carousel' +const VERSION = '4.5.3' +const DATA_KEY = 'bs.carousel' +const EVENT_KEY = `.${DATA_KEY}` +const DATA_API_KEY = '.data-api' +const JQUERY_NO_CONFLICT = $.fn[NAME] +const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key +const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch -const SWIPE_THRESHOLD = 40 +const SWIPE_THRESHOLD = 40 const Default = { - interval : 5000, - keyboard : true, - slide : false, - pause : 'hover', - wrap : true, - touch : true + interval: 5000, + keyboard: true, + slide: false, + pause: 'hover', + wrap: true, + touch: true } const DefaultType = { - interval : '(number|boolean)', - keyboard : 'boolean', - slide : '(boolean|string)', - pause : '(string|boolean)', - wrap : 'boolean', - touch : 'boolean' + interval: '(number|boolean)', + keyboard: 'boolean', + slide: '(boolean|string)', + pause: '(string|boolean)', + wrap: 'boolean', + touch: 'boolean' } -const DIRECTION_NEXT = 'next' -const DIRECTION_PREV = 'prev' -const DIRECTION_LEFT = 'left' -const DIRECTION_RIGHT = 'right' - -const EVENT_SLIDE = `slide${EVENT_KEY}` -const EVENT_SLID = `slid${EVENT_KEY}` -const EVENT_KEYDOWN = `keydown${EVENT_KEY}` -const EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}` -const EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}` -const EVENT_TOUCHSTART = `touchstart${EVENT_KEY}` -const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}` -const EVENT_TOUCHEND = `touchend${EVENT_KEY}` -const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}` -const EVENT_POINTERUP = `pointerup${EVENT_KEY}` -const EVENT_DRAG_START = `dragstart${EVENT_KEY}` -const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}` +const DIRECTION_NEXT = 'next' +const DIRECTION_PREV = 'prev' +const DIRECTION_LEFT = 'left' +const DIRECTION_RIGHT = 'right' + +const EVENT_SLIDE = `slide${EVENT_KEY}` +const EVENT_SLID = `slid${EVENT_KEY}` +const EVENT_KEYDOWN = `keydown${EVENT_KEY}` +const EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}` +const EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}` +const EVENT_TOUCHSTART = `touchstart${EVENT_KEY}` +const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}` +const EVENT_TOUCHEND = `touchend${EVENT_KEY}` +const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}` +const EVENT_POINTERUP = `pointerup${EVENT_KEY}` +const EVENT_DRAG_START = `dragstart${EVENT_KEY}` +const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}` const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}` -const CLASS_NAME_CAROUSEL = 'carousel' -const CLASS_NAME_ACTIVE = 'active' -const CLASS_NAME_SLIDE = 'slide' -const CLASS_NAME_RIGHT = 'carousel-item-right' -const CLASS_NAME_LEFT = 'carousel-item-left' -const CLASS_NAME_NEXT = 'carousel-item-next' -const CLASS_NAME_PREV = 'carousel-item-prev' +const CLASS_NAME_CAROUSEL = 'carousel' +const CLASS_NAME_ACTIVE = 'active' +const CLASS_NAME_SLIDE = 'slide' +const CLASS_NAME_RIGHT = 'carousel-item-right' +const CLASS_NAME_LEFT = 'carousel-item-left' +const CLASS_NAME_NEXT = 'carousel-item-next' +const CLASS_NAME_PREV = 'carousel-item-prev' const CLASS_NAME_POINTER_EVENT = 'pointer-event' -const SELECTOR_ACTIVE = '.active' +const SELECTOR_ACTIVE = '.active' const SELECTOR_ACTIVE_ITEM = '.active.carousel-item' -const SELECTOR_ITEM = '.carousel-item' -const SELECTOR_ITEM_IMG = '.carousel-item img' -const SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev' -const SELECTOR_INDICATORS = '.carousel-indicators' -const SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]' -const SELECTOR_DATA_RIDE = '[data-ride="carousel"]' +const SELECTOR_ITEM = '.carousel-item' +const SELECTOR_ITEM_IMG = '.carousel-item img' +const SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev' +const SELECTOR_INDICATORS = '.carousel-indicators' +const SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]' +const SELECTOR_DATA_RIDE = '[data-ride="carousel"]' const PointerType = { - TOUCH : 'touch', - PEN : 'pen' + TOUCH: 'touch', + PEN: 'pen' } /** @@ -92,20 +92,20 @@ const PointerType = { */ class Carousel { constructor(element, config) { - this._items = null - this._interval = null + this._items = null + this._interval = null this._activeElement = null - this._isPaused = false - this._isSliding = false - this.touchTimeout = null - this.touchStartX = 0 - this.touchDeltaX = 0 - - this._config = this._getConfig(config) - this._element = element + this._isPaused = false + this._isSliding = false + this.touchTimeout = null + this.touchStartX = 0 + this.touchDeltaX = 0 + + this._config = this._getConfig(config) + this._element = element this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS) - this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0 - this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent) + this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0 + this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent) this._addEventListeners() } @@ -129,10 +129,11 @@ class Carousel { } nextWhenVisible() { + const $element = $(this._element) // Don't call next when the page isn't visible // or the carousel or its parent isn't visible if (!document.hidden && - ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) { + ($element.is(':visible') && $element.css('visibility') !== 'hidden')) { this.next() } } @@ -195,9 +196,9 @@ class Carousel { return } - const direction = index > activeIndex - ? DIRECTION_NEXT - : DIRECTION_PREV + const direction = index > activeIndex ? + DIRECTION_NEXT : + DIRECTION_PREV this._slide(direction, this._items[index]) } @@ -206,13 +207,13 @@ class Carousel { $(this._element).off(EVENT_KEY) $.removeData(this._element, DATA_KEY) - this._items = null - this._config = null - this._element = null - this._interval = null - this._isPaused = null - this._isSliding = null - this._activeElement = null + this._items = null + this._config = null + this._element = null + this._interval = null + this._isPaused = null + this._isSliding = null + this._activeElement = null this._indicatorsElement = null } @@ -251,13 +252,13 @@ class Carousel { _addEventListeners() { if (this._config.keyboard) { - $(this._element).on(EVENT_KEYDOWN, (event) => this._keydown(event)) + $(this._element).on(EVENT_KEYDOWN, event => this._keydown(event)) } if (this._config.pause === 'hover') { $(this._element) - .on(EVENT_MOUSEENTER, (event) => this.pause(event)) - .on(EVENT_MOUSELEAVE, (event) => this.cycle(event)) + .on(EVENT_MOUSEENTER, event => this.pause(event)) + .on(EVENT_MOUSELEAVE, event => this.cycle(event)) } if (this._config.touch) { @@ -270,7 +271,7 @@ class Carousel { return } - const start = (event) => { + const start = event => { if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) { this.touchStartX = event.originalEvent.clientX } else if (!this._pointerEvent) { @@ -278,7 +279,7 @@ class Carousel { } } - const move = (event) => { + const move = event => { // ensure swiping with one touch and not pinching if (event.originalEvent.touches && event.originalEvent.touches.length > 1) { this.touchDeltaX = 0 @@ -287,7 +288,7 @@ class Carousel { } } - const end = (event) => { + const end = event => { if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) { this.touchDeltaX = event.originalEvent.clientX - this.touchStartX } @@ -306,22 +307,23 @@ class Carousel { if (this.touchTimeout) { clearTimeout(this.touchTimeout) } - this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval) + + this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval) } } $(this._element.querySelectorAll(SELECTOR_ITEM_IMG)) - .on(EVENT_DRAG_START, (e) => e.preventDefault()) + .on(EVENT_DRAG_START, e => e.preventDefault()) if (this._pointerEvent) { - $(this._element).on(EVENT_POINTERDOWN, (event) => start(event)) - $(this._element).on(EVENT_POINTERUP, (event) => end(event)) + $(this._element).on(EVENT_POINTERDOWN, event => start(event)) + $(this._element).on(EVENT_POINTERUP, event => end(event)) this._element.classList.add(CLASS_NAME_POINTER_EVENT) } else { - $(this._element).on(EVENT_TOUCHSTART, (event) => start(event)) - $(this._element).on(EVENT_TOUCHMOVE, (event) => move(event)) - $(this._element).on(EVENT_TOUCHEND, (event) => end(event)) + $(this._element).on(EVENT_TOUCHSTART, event => start(event)) + $(this._element).on(EVENT_TOUCHMOVE, event => move(event)) + $(this._element).on(EVENT_TOUCHEND, event => end(event)) } } @@ -344,29 +346,29 @@ class Carousel { } _getItemIndex(element) { - this._items = element && element.parentNode - ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) - : [] + this._items = element && element.parentNode ? + [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) : + [] return this._items.indexOf(element) } _getItemByDirection(direction, activeElement) { const isNextDirection = direction === DIRECTION_NEXT const isPrevDirection = direction === DIRECTION_PREV - const activeIndex = this._getItemIndex(activeElement) - const lastItemIndex = this._items.length - 1 - const isGoingToWrap = isPrevDirection && activeIndex === 0 || + const activeIndex = this._getItemIndex(activeElement) + const lastItemIndex = this._items.length - 1 + const isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex if (isGoingToWrap && !this._config.wrap) { return activeElement } - const delta = direction === DIRECTION_PREV ? -1 : 1 + const delta = direction === DIRECTION_PREV ? -1 : 1 const itemIndex = (activeIndex + delta) % this._items.length - return itemIndex === -1 - ? this._items[this._items.length - 1] : this._items[itemIndex] + return itemIndex === -1 ? + this._items[this._items.length - 1] : this._items[itemIndex] } _triggerSlideEvent(relatedTarget, eventDirectionName) { @@ -402,7 +404,7 @@ class Carousel { _slide(direction, element) { const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM) const activeElementIndex = this._getItemIndex(activeElement) - const nextElement = element || activeElement && + const nextElement = element || activeElement && this._getItemByDirection(direction, activeElement) const nextElementIndex = this._getItemIndex(nextElement) const isCycling = Boolean(this._interval) @@ -525,6 +527,7 @@ class Carousel { if (typeof data[action] === 'undefined') { throw new TypeError(`No method named "${action}"`) } + data[action]() } else if (_config.interval && _config.ride) { data.pause() diff --git a/npm_assets/node_modules/bootstrap/js/src/collapse.js b/npm_assets/node_modules/bootstrap/js/src/collapse.js index 9e501e085a..0ec037704e 100644 --- a/npm_assets/node_modules/bootstrap/js/src/collapse.js +++ b/npm_assets/node_modules/bootstrap/js/src/collapse.js @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): collapse.js + * Bootstrap (v4.5.3): collapse.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -14,38 +14,38 @@ import Util from './util' * ------------------------------------------------------------------------ */ -const NAME = 'collapse' -const VERSION = '4.5.2' -const DATA_KEY = 'bs.collapse' -const EVENT_KEY = `.${DATA_KEY}` -const DATA_API_KEY = '.data-api' -const JQUERY_NO_CONFLICT = $.fn[NAME] +const NAME = 'collapse' +const VERSION = '4.5.3' +const DATA_KEY = 'bs.collapse' +const EVENT_KEY = `.${DATA_KEY}` +const DATA_API_KEY = '.data-api' +const JQUERY_NO_CONFLICT = $.fn[NAME] const Default = { - toggle : true, - parent : '' + toggle: true, + parent: '' } const DefaultType = { - toggle : 'boolean', - parent : '(string|element)' + toggle: 'boolean', + parent: '(string|element)' } -const EVENT_SHOW = `show${EVENT_KEY}` -const EVENT_SHOWN = `shown${EVENT_KEY}` -const EVENT_HIDE = `hide${EVENT_KEY}` -const EVENT_HIDDEN = `hidden${EVENT_KEY}` +const EVENT_SHOW = `show${EVENT_KEY}` +const EVENT_SHOWN = `shown${EVENT_KEY}` +const EVENT_HIDE = `hide${EVENT_KEY}` +const EVENT_HIDDEN = `hidden${EVENT_KEY}` const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}` -const CLASS_NAME_SHOW = 'show' -const CLASS_NAME_COLLAPSE = 'collapse' +const CLASS_NAME_SHOW = 'show' +const CLASS_NAME_COLLAPSE = 'collapse' const CLASS_NAME_COLLAPSING = 'collapsing' -const CLASS_NAME_COLLAPSED = 'collapsed' +const CLASS_NAME_COLLAPSED = 'collapsed' -const DIMENSION_WIDTH = 'width' +const DIMENSION_WIDTH = 'width' const DIMENSION_HEIGHT = 'height' -const SELECTOR_ACTIVES = '.show, .collapsing' +const SELECTOR_ACTIVES = '.show, .collapsing' const SELECTOR_DATA_TOGGLE = '[data-toggle="collapse"]' /** @@ -57,9 +57,9 @@ const SELECTOR_DATA_TOGGLE = '[data-toggle="collapse"]' class Collapse { constructor(element, config) { this._isTransitioning = false - this._element = element - this._config = this._getConfig(config) - this._triggerArray = [].slice.call(document.querySelectorAll( + this._element = element + this._config = this._getConfig(config) + this._triggerArray = [].slice.call(document.querySelectorAll( `[data-toggle="collapse"][href="#${element.id}"],` + `[data-toggle="collapse"][data-target="#${element.id}"]` )) @@ -69,7 +69,7 @@ class Collapse { const elem = toggleList[i] const selector = Util.getSelectorFromElement(elem) const filterElement = [].slice.call(document.querySelectorAll(selector)) - .filter((foundElem) => foundElem === element) + .filter(foundElem => foundElem === element) if (selector !== null && filterElement.length > 0) { this._selector = selector @@ -119,7 +119,7 @@ class Collapse { if (this._parent) { actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)) - .filter((elem) => { + .filter(elem => { if (typeof this._config.parent === 'string') { return elem.getAttribute('data-parent') === this._config.parent } @@ -254,10 +254,10 @@ class Collapse { dispose() { $.removeData(this._element, DATA_KEY) - this._config = null - this._parent = null - this._element = null - this._triggerArray = null + this._config = null + this._parent = null + this._element = null + this._triggerArray = null this._isTransitioning = null } @@ -324,12 +324,12 @@ class Collapse { static _jQueryInterface(config) { return this.each(function () { - const $this = $(this) - let data = $this.data(DATA_KEY) + const $element = $(this) + let data = $element.data(DATA_KEY) const _config = { ...Default, - ...$this.data(), - ...typeof config === 'object' && config ? config : {} + ...$element.data(), + ...(typeof config === 'object' && config ? config : {}) } if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) { @@ -338,13 +338,14 @@ class Collapse { if (!data) { data = new Collapse(this, _config) - $this.data(DATA_KEY, data) + $element.data(DATA_KEY, data) } if (typeof config === 'string') { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`) } + data[config]() } }) @@ -369,8 +370,8 @@ $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { $(selectors).each(function () { const $target = $(this) - const data = $target.data(DATA_KEY) - const config = data ? 'toggle' : $trigger.data() + const data = $target.data(DATA_KEY) + const config = data ? 'toggle' : $trigger.data() Collapse._jQueryInterface.call($target, config) }) }) diff --git a/npm_assets/node_modules/bootstrap/js/src/dropdown.js b/npm_assets/node_modules/bootstrap/js/src/dropdown.js index bfb1f668cc..c2779f05fa 100644 --- a/npm_assets/node_modules/bootstrap/js/src/dropdown.js +++ b/npm_assets/node_modules/bootstrap/js/src/dropdown.js @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): dropdown.js + * Bootstrap (v4.5.3): dropdown.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -15,66 +15,66 @@ import Util from './util' * ------------------------------------------------------------------------ */ -const NAME = 'dropdown' -const VERSION = '4.5.2' -const DATA_KEY = 'bs.dropdown' -const EVENT_KEY = `.${DATA_KEY}` -const DATA_API_KEY = '.data-api' -const JQUERY_NO_CONFLICT = $.fn[NAME] -const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key -const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key -const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key -const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key -const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key +const NAME = 'dropdown' +const VERSION = '4.5.3' +const DATA_KEY = 'bs.dropdown' +const EVENT_KEY = `.${DATA_KEY}` +const DATA_API_KEY = '.data-api' +const JQUERY_NO_CONFLICT = $.fn[NAME] +const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key +const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key +const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key +const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key +const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse) -const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`) - -const EVENT_HIDE = `hide${EVENT_KEY}` -const EVENT_HIDDEN = `hidden${EVENT_KEY}` -const EVENT_SHOW = `show${EVENT_KEY}` -const EVENT_SHOWN = `shown${EVENT_KEY}` -const EVENT_CLICK = `click${EVENT_KEY}` -const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}` +const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`) + +const EVENT_HIDE = `hide${EVENT_KEY}` +const EVENT_HIDDEN = `hidden${EVENT_KEY}` +const EVENT_SHOW = `show${EVENT_KEY}` +const EVENT_SHOWN = `shown${EVENT_KEY}` +const EVENT_CLICK = `click${EVENT_KEY}` +const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}` const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}` -const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}` - -const CLASS_NAME_DISABLED = 'disabled' -const CLASS_NAME_SHOW = 'show' -const CLASS_NAME_DROPUP = 'dropup' -const CLASS_NAME_DROPRIGHT = 'dropright' -const CLASS_NAME_DROPLEFT = 'dropleft' -const CLASS_NAME_MENURIGHT = 'dropdown-menu-right' +const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}` + +const CLASS_NAME_DISABLED = 'disabled' +const CLASS_NAME_SHOW = 'show' +const CLASS_NAME_DROPUP = 'dropup' +const CLASS_NAME_DROPRIGHT = 'dropright' +const CLASS_NAME_DROPLEFT = 'dropleft' +const CLASS_NAME_MENURIGHT = 'dropdown-menu-right' const CLASS_NAME_POSITION_STATIC = 'position-static' -const SELECTOR_DATA_TOGGLE = '[data-toggle="dropdown"]' -const SELECTOR_FORM_CHILD = '.dropdown form' -const SELECTOR_MENU = '.dropdown-menu' -const SELECTOR_NAVBAR_NAV = '.navbar-nav' +const SELECTOR_DATA_TOGGLE = '[data-toggle="dropdown"]' +const SELECTOR_FORM_CHILD = '.dropdown form' +const SELECTOR_MENU = '.dropdown-menu' +const SELECTOR_NAVBAR_NAV = '.navbar-nav' const SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)' -const PLACEMENT_TOP = 'top-start' -const PLACEMENT_TOPEND = 'top-end' -const PLACEMENT_BOTTOM = 'bottom-start' +const PLACEMENT_TOP = 'top-start' +const PLACEMENT_TOPEND = 'top-end' +const PLACEMENT_BOTTOM = 'bottom-start' const PLACEMENT_BOTTOMEND = 'bottom-end' -const PLACEMENT_RIGHT = 'right-start' -const PLACEMENT_LEFT = 'left-start' +const PLACEMENT_RIGHT = 'right-start' +const PLACEMENT_LEFT = 'left-start' const Default = { - offset : 0, - flip : true, - boundary : 'scrollParent', - reference : 'toggle', - display : 'dynamic', - popperConfig : null + offset: 0, + flip: true, + boundary: 'scrollParent', + reference: 'toggle', + display: 'dynamic', + popperConfig: null } const DefaultType = { - offset : '(number|string|function)', - flip : 'boolean', - boundary : '(string|element)', - reference : '(string|element)', - display : 'string', - popperConfig : '(null|object)' + offset: '(number|string|function)', + flip: 'boolean', + boundary: '(string|element)', + reference: '(string|element)', + display: 'string', + popperConfig: '(null|object)' } /** @@ -85,10 +85,10 @@ const DefaultType = { class Dropdown { constructor(element, config) { - this._element = element - this._popper = null - this._config = this._getConfig(config) - this._menu = this._getMenuElement() + this._element = element + this._popper = null + this._config = this._getConfig(config) + this._menu = this._getMenuElement() this._inNavbar = this._detectNavbar() this._addEventListeners() @@ -172,6 +172,7 @@ class Dropdown { if (this._config.boundary !== 'scrollParent') { $(parent).addClass(CLASS_NAME_POSITION_STATIC) } + this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig()) } @@ -241,7 +242,7 @@ class Dropdown { // Private _addEventListeners() { - $(this._element).on(EVENT_CLICK, (event) => { + $(this._element).on(EVENT_CLICK, event => { event.preventDefault() event.stopPropagation() this.toggle() @@ -272,6 +273,7 @@ class Dropdown { this._menu = parent.querySelector(SELECTOR_MENU) } } + return this._menu } @@ -281,9 +283,9 @@ class Dropdown { // Handle dropup if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) { - placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) - ? PLACEMENT_TOPEND - : PLACEMENT_TOP + placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) ? + PLACEMENT_TOPEND : + PLACEMENT_TOP } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) { placement = PLACEMENT_RIGHT } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) { @@ -291,6 +293,7 @@ class Dropdown { } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) { placement = PLACEMENT_BOTTOMEND } + return placement } @@ -302,10 +305,10 @@ class Dropdown { const offset = {} if (typeof this._config.offset === 'function') { - offset.fn = (data) => { + offset.fn = data => { data.offsets = { ...data.offsets, - ...this._config.offset(data.offsets, this._element) || {} + ...(this._config.offset(data.offsets, this._element) || {}) } return data @@ -360,6 +363,7 @@ class Dropdown { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`) } + data[config]() } }) @@ -444,8 +448,8 @@ class Dropdown { // - If key is other than escape // - If key is not up or down => not a dropdown command // - If trigger inside the menu => not a dropdown command - if (/input|textarea/i.test(event.target.tagName) - ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && + if (/input|textarea/i.test(event.target.tagName) ? + event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) { return @@ -455,7 +459,7 @@ class Dropdown { return } - const parent = Dropdown._getParentFromElement(this) + const parent = Dropdown._getParentFromElement(this) const isActive = $(parent).hasClass(CLASS_NAME_SHOW) if (!isActive && event.which === ESCAPE_KEYCODE) { @@ -465,7 +469,7 @@ class Dropdown { event.preventDefault() event.stopPropagation() - if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) { + if (!isActive || (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) { if (event.which === ESCAPE_KEYCODE) { $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus') } @@ -475,7 +479,7 @@ class Dropdown { } const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)) - .filter((item) => $(item).is(':visible')) + .filter(item => $(item).is(':visible')) if (items.length === 0) { return @@ -514,7 +518,7 @@ $(document) event.stopPropagation() Dropdown._jQueryInterface.call($(this), 'toggle') }) - .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, (e) => { + .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => { e.stopPropagation() }) diff --git a/npm_assets/node_modules/bootstrap/js/src/index.js b/npm_assets/node_modules/bootstrap/js/src/index.js index b6c532eb52..f407cffa5a 100644 --- a/npm_assets/node_modules/bootstrap/js/src/index.js +++ b/npm_assets/node_modules/bootstrap/js/src/index.js @@ -13,7 +13,7 @@ import Util from './util' /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): index.js + * Bootstrap (v4.5.3): index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ diff --git a/npm_assets/node_modules/bootstrap/js/src/modal.js b/npm_assets/node_modules/bootstrap/js/src/modal.js index b67507b1ee..975a20be64 100644 --- a/npm_assets/node_modules/bootstrap/js/src/modal.js +++ b/npm_assets/node_modules/bootstrap/js/src/modal.js @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): modal.js + * Bootstrap (v4.5.3): modal.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -14,54 +14,54 @@ import Util from './util' * ------------------------------------------------------------------------ */ -const NAME = 'modal' -const VERSION = '4.5.2' -const DATA_KEY = 'bs.modal' -const EVENT_KEY = `.${DATA_KEY}` -const DATA_API_KEY = '.data-api' +const NAME = 'modal' +const VERSION = '4.5.3' +const DATA_KEY = 'bs.modal' +const EVENT_KEY = `.${DATA_KEY}` +const DATA_API_KEY = '.data-api' const JQUERY_NO_CONFLICT = $.fn[NAME] -const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key +const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key const Default = { - backdrop : true, - keyboard : true, - focus : true, - show : true + backdrop: true, + keyboard: true, + focus: true, + show: true } const DefaultType = { - backdrop : '(boolean|string)', - keyboard : 'boolean', - focus : 'boolean', - show : 'boolean' + backdrop: '(boolean|string)', + keyboard: 'boolean', + focus: 'boolean', + show: 'boolean' } -const EVENT_HIDE = `hide${EVENT_KEY}` -const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}` -const EVENT_HIDDEN = `hidden${EVENT_KEY}` -const EVENT_SHOW = `show${EVENT_KEY}` -const EVENT_SHOWN = `shown${EVENT_KEY}` -const EVENT_FOCUSIN = `focusin${EVENT_KEY}` -const EVENT_RESIZE = `resize${EVENT_KEY}` -const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}` -const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}` -const EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}` +const EVENT_HIDE = `hide${EVENT_KEY}` +const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}` +const EVENT_HIDDEN = `hidden${EVENT_KEY}` +const EVENT_SHOW = `show${EVENT_KEY}` +const EVENT_SHOWN = `shown${EVENT_KEY}` +const EVENT_FOCUSIN = `focusin${EVENT_KEY}` +const EVENT_RESIZE = `resize${EVENT_KEY}` +const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}` +const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}` +const EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}` const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}` -const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}` +const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}` -const CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable' +const CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable' const CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure' -const CLASS_NAME_BACKDROP = 'modal-backdrop' -const CLASS_NAME_OPEN = 'modal-open' -const CLASS_NAME_FADE = 'fade' -const CLASS_NAME_SHOW = 'show' -const CLASS_NAME_STATIC = 'modal-static' - -const SELECTOR_DIALOG = '.modal-dialog' -const SELECTOR_MODAL_BODY = '.modal-body' -const SELECTOR_DATA_TOGGLE = '[data-toggle="modal"]' -const SELECTOR_DATA_DISMISS = '[data-dismiss="modal"]' -const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top' +const CLASS_NAME_BACKDROP = 'modal-backdrop' +const CLASS_NAME_OPEN = 'modal-open' +const CLASS_NAME_FADE = 'fade' +const CLASS_NAME_SHOW = 'show' +const CLASS_NAME_STATIC = 'modal-static' + +const SELECTOR_DIALOG = '.modal-dialog' +const SELECTOR_MODAL_BODY = '.modal-body' +const SELECTOR_DATA_TOGGLE = '[data-toggle="modal"]' +const SELECTOR_DATA_DISMISS = '[data-dismiss="modal"]' +const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top' const SELECTOR_STICKY_CONTENT = '.sticky-top' /** @@ -72,15 +72,15 @@ const SELECTOR_STICKY_CONTENT = '.sticky-top' class Modal { constructor(element, config) { - this._config = this._getConfig(config) - this._element = element - this._dialog = element.querySelector(SELECTOR_DIALOG) - this._backdrop = null - this._isShown = false - this._isBodyOverflowing = false + this._config = this._getConfig(config) + this._element = element + this._dialog = element.querySelector(SELECTOR_DIALOG) + this._backdrop = null + this._isShown = false + this._isBodyOverflowing = false this._ignoreBackdropClick = false - this._isTransitioning = false - this._scrollbarWidth = 0 + this._isTransitioning = false + this._scrollbarWidth = 0 } // Getters @@ -131,11 +131,11 @@ class Modal { $(this._element).on( EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, - (event) => this.hide(event) + event => this.hide(event) ) $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => { - $(this._element).one(EVENT_MOUSEUP_DISMISS, (event) => { + $(this._element).one(EVENT_MOUSEUP_DISMISS, event => { if ($(event.target).is(this._element)) { this._ignoreBackdropClick = true } @@ -180,10 +180,10 @@ class Modal { $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS) if (transition) { - const transitionDuration = Util.getTransitionDurationFromElement(this._element) + const transitionDuration = Util.getTransitionDurationFromElement(this._element) $(this._element) - .one(Util.TRANSITION_END, (event) => this._hideModal(event)) + .one(Util.TRANSITION_END, event => this._hideModal(event)) .emulateTransitionEnd(transitionDuration) } else { this._hideModal() @@ -192,7 +192,7 @@ class Modal { dispose() { [window, this._element, this._dialog] - .forEach((htmlElement) => $(htmlElement).off(EVENT_KEY)) + .forEach(htmlElement => $(htmlElement).off(EVENT_KEY)) /** * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API` @@ -203,15 +203,15 @@ class Modal { $.removeData(this._element, DATA_KEY) - this._config = null - this._element = null - this._dialog = null - this._backdrop = null - this._isShown = null - this._isBodyOverflowing = null + this._config = null + this._element = null + this._dialog = null + this._backdrop = null + this._isShown = null + this._isBodyOverflowing = null this._ignoreBackdropClick = null - this._isTransitioning = null - this._scrollbarWidth = null + this._isTransitioning = null + this._scrollbarWidth = null } handleUpdate() { @@ -234,7 +234,7 @@ class Modal { const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED) $(this._element).trigger(hideEventPrevented) - if (hideEventPrevented.defaultPrevented) { + if (hideEventPrevented.isDefaultPrevented()) { return } @@ -304,12 +304,13 @@ class Modal { if (this._config.focus) { this._element.focus() } + this._isTransitioning = false $(this._element).trigger(shownEvent) } if (transition) { - const transitionDuration = Util.getTransitionDurationFromElement(this._dialog) + const transitionDuration = Util.getTransitionDurationFromElement(this._dialog) $(this._dialog) .one(Util.TRANSITION_END, transitionComplete) @@ -322,7 +323,7 @@ class Modal { _enforceFocus() { $(document) .off(EVENT_FOCUSIN) // Guard against infinite focus loop - .on(EVENT_FOCUSIN, (event) => { + .on(EVENT_FOCUSIN, event => { if (document !== event.target && this._element !== event.target && $(this._element).has(event.target).length === 0) { @@ -333,7 +334,7 @@ class Modal { _setEscapeEvent() { if (this._isShown) { - $(this._element).on(EVENT_KEYDOWN_DISMISS, (event) => { + $(this._element).on(EVENT_KEYDOWN_DISMISS, event => { if (this._config.keyboard && event.which === ESCAPE_KEYCODE) { event.preventDefault() this.hide() @@ -348,7 +349,7 @@ class Modal { _setResizeEvent() { if (this._isShown) { - $(window).on(EVENT_RESIZE, (event) => this.handleUpdate(event)) + $(window).on(EVENT_RESIZE, event => this.handleUpdate(event)) } else { $(window).off(EVENT_RESIZE) } @@ -376,8 +377,8 @@ class Modal { } _showBackdrop(callback) { - const animate = $(this._element).hasClass(CLASS_NAME_FADE) - ? CLASS_NAME_FADE : '' + const animate = $(this._element).hasClass(CLASS_NAME_FADE) ? + CLASS_NAME_FADE : '' if (this._isShown && this._config.backdrop) { this._backdrop = document.createElement('div') @@ -389,11 +390,12 @@ class Modal { $(this._backdrop).appendTo(document.body) - $(this._element).on(EVENT_CLICK_DISMISS, (event) => { + $(this._element).on(EVENT_CLICK_DISMISS, event => { if (this._ignoreBackdropClick) { this._ignoreBackdropClick = false return } + if (event.target !== event.currentTarget) { return } @@ -451,8 +453,7 @@ class Modal { // ---------------------------------------------------------------------- _adjustDialog() { - const isModalOverflowing = - this._element.scrollHeight > document.documentElement.clientHeight + const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight if (!this._isBodyOverflowing && isModalOverflowing) { this._element.style.paddingLeft = `${this._scrollbarWidth}px` @@ -551,7 +552,7 @@ class Modal { const _config = { ...Default, ...$(this).data(), - ...typeof config === 'object' && config ? config : {} + ...(typeof config === 'object' && config ? config : {}) } if (!data) { @@ -563,6 +564,7 @@ class Modal { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`) } + data[config](relatedTarget) } else if (_config.show) { data.show(relatedTarget) @@ -585,8 +587,8 @@ $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { target = document.querySelector(selector) } - const config = $(target).data(DATA_KEY) - ? 'toggle' : { + const config = $(target).data(DATA_KEY) ? + 'toggle' : { ...$(target).data(), ...$(this).data() } @@ -595,7 +597,7 @@ $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { event.preventDefault() } - const $target = $(target).one(EVENT_SHOW, (showEvent) => { + const $target = $(target).one(EVENT_SHOW, showEvent => { if (showEvent.isDefaultPrevented()) { // Only register focus restorer if modal will actually get shown return diff --git a/npm_assets/node_modules/bootstrap/js/src/popover.js b/npm_assets/node_modules/bootstrap/js/src/popover.js index 885d162349..ee7a4ca9af 100644 --- a/npm_assets/node_modules/bootstrap/js/src/popover.js +++ b/npm_assets/node_modules/bootstrap/js/src/popover.js @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): popover.js + * Bootstrap (v4.5.3): popover.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -14,20 +14,20 @@ import Tooltip from './tooltip' * ------------------------------------------------------------------------ */ -const NAME = 'popover' -const VERSION = '4.5.2' -const DATA_KEY = 'bs.popover' -const EVENT_KEY = `.${DATA_KEY}` -const JQUERY_NO_CONFLICT = $.fn[NAME] -const CLASS_PREFIX = 'bs-popover' -const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g') +const NAME = 'popover' +const VERSION = '4.5.3' +const DATA_KEY = 'bs.popover' +const EVENT_KEY = `.${DATA_KEY}` +const JQUERY_NO_CONFLICT = $.fn[NAME] +const CLASS_PREFIX = 'bs-popover' +const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g') const Default = { ...Tooltip.Default, - placement : 'right', - trigger : 'click', - content : '', - template : '<div class="popover" role="tooltip">' + + placement: 'right', + trigger: 'click', + content: '', + template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>' @@ -35,26 +35,26 @@ const Default = { const DefaultType = { ...Tooltip.DefaultType, - content : '(string|element|function)' + content: '(string|element|function)' } const CLASS_NAME_FADE = 'fade' const CLASS_NAME_SHOW = 'show' -const SELECTOR_TITLE = '.popover-header' +const SELECTOR_TITLE = '.popover-header' const SELECTOR_CONTENT = '.popover-body' const Event = { - HIDE : `hide${EVENT_KEY}`, - HIDDEN : `hidden${EVENT_KEY}`, - SHOW : `show${EVENT_KEY}`, - SHOWN : `shown${EVENT_KEY}`, - INSERTED : `inserted${EVENT_KEY}`, - CLICK : `click${EVENT_KEY}`, - FOCUSIN : `focusin${EVENT_KEY}`, - FOCUSOUT : `focusout${EVENT_KEY}`, - MOUSEENTER : `mouseenter${EVENT_KEY}`, - MOUSELEAVE : `mouseleave${EVENT_KEY}` + HIDE: `hide${EVENT_KEY}`, + HIDDEN: `hidden${EVENT_KEY}`, + SHOW: `show${EVENT_KEY}`, + SHOWN: `shown${EVENT_KEY}`, + INSERTED: `inserted${EVENT_KEY}`, + CLICK: `click${EVENT_KEY}`, + FOCUSIN: `focusin${EVENT_KEY}`, + FOCUSOUT: `focusout${EVENT_KEY}`, + MOUSEENTER: `mouseenter${EVENT_KEY}`, + MOUSELEAVE: `mouseleave${EVENT_KEY}` } /** @@ -118,6 +118,7 @@ class Popover extends Tooltip { if (typeof content === 'function') { content = content.call(this.element) } + this.setElementContent($tip.find(SELECTOR_CONTENT), content) $tip.removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`) @@ -158,6 +159,7 @@ class Popover extends Tooltip { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`) } + data[config]() } }) diff --git a/npm_assets/node_modules/bootstrap/js/src/scrollspy.js b/npm_assets/node_modules/bootstrap/js/src/scrollspy.js index 78b5e71911..7daa51e860 100644 --- a/npm_assets/node_modules/bootstrap/js/src/scrollspy.js +++ b/npm_assets/node_modules/bootstrap/js/src/scrollspy.js @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): scrollspy.js + * Bootstrap (v4.5.3): scrollspy.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -14,42 +14,42 @@ import Util from './util' * ------------------------------------------------------------------------ */ -const NAME = 'scrollspy' -const VERSION = '4.5.2' -const DATA_KEY = 'bs.scrollspy' -const EVENT_KEY = `.${DATA_KEY}` -const DATA_API_KEY = '.data-api' +const NAME = 'scrollspy' +const VERSION = '4.5.3' +const DATA_KEY = 'bs.scrollspy' +const EVENT_KEY = `.${DATA_KEY}` +const DATA_API_KEY = '.data-api' const JQUERY_NO_CONFLICT = $.fn[NAME] const Default = { - offset : 10, - method : 'auto', - target : '' + offset: 10, + method: 'auto', + target: '' } const DefaultType = { - offset : 'number', - method : 'string', - target : '(string|element)' + offset: 'number', + method: 'string', + target: '(string|element)' } -const EVENT_ACTIVATE = `activate${EVENT_KEY}` -const EVENT_SCROLL = `scroll${EVENT_KEY}` +const EVENT_ACTIVATE = `activate${EVENT_KEY}` +const EVENT_SCROLL = `scroll${EVENT_KEY}` const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}` const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item' -const CLASS_NAME_ACTIVE = 'active' - -const SELECTOR_DATA_SPY = '[data-spy="scroll"]' -const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group' -const SELECTOR_NAV_LINKS = '.nav-link' -const SELECTOR_NAV_ITEMS = '.nav-item' -const SELECTOR_LIST_ITEMS = '.list-group-item' -const SELECTOR_DROPDOWN = '.dropdown' -const SELECTOR_DROPDOWN_ITEMS = '.dropdown-item' +const CLASS_NAME_ACTIVE = 'active' + +const SELECTOR_DATA_SPY = '[data-spy="scroll"]' +const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group' +const SELECTOR_NAV_LINKS = '.nav-link' +const SELECTOR_NAV_ITEMS = '.nav-item' +const SELECTOR_LIST_ITEMS = '.list-group-item' +const SELECTOR_DROPDOWN = '.dropdown' +const SELECTOR_DROPDOWN_ITEMS = '.dropdown-item' const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle' -const METHOD_OFFSET = 'offset' +const METHOD_OFFSET = 'offset' const METHOD_POSITION = 'position' /** @@ -60,18 +60,18 @@ const METHOD_POSITION = 'position' class ScrollSpy { constructor(element, config) { - this._element = element + this._element = element this._scrollElement = element.tagName === 'BODY' ? window : element - this._config = this._getConfig(config) - this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` + + this._config = this._getConfig(config) + this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` + `${this._config.target} ${SELECTOR_LIST_ITEMS},` + `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}` - this._offsets = [] - this._targets = [] - this._activeTarget = null - this._scrollHeight = 0 + this._offsets = [] + this._targets = [] + this._activeTarget = null + this._scrollHeight = 0 - $(this._scrollElement).on(EVENT_SCROLL, (event) => this._process(event)) + $(this._scrollElement).on(EVENT_SCROLL, event => this._process(event)) this.refresh() this._process() @@ -90,14 +90,14 @@ class ScrollSpy { // Public refresh() { - const autoMethod = this._scrollElement === this._scrollElement.window - ? METHOD_OFFSET : METHOD_POSITION + const autoMethod = this._scrollElement === this._scrollElement.window ? + METHOD_OFFSET : METHOD_POSITION - const offsetMethod = this._config.method === 'auto' - ? autoMethod : this._config.method + const offsetMethod = this._config.method === 'auto' ? + autoMethod : this._config.method - const offsetBase = offsetMethod === METHOD_POSITION - ? this._getScrollTop() : 0 + const offsetBase = offsetMethod === METHOD_POSITION ? + this._getScrollTop() : 0 this._offsets = [] this._targets = [] @@ -107,7 +107,7 @@ class ScrollSpy { const targets = [].slice.call(document.querySelectorAll(this._selector)) targets - .map((element) => { + .map(element => { let target const targetSelector = Util.getSelectorFromElement(element) @@ -125,11 +125,12 @@ class ScrollSpy { ] } } + return null }) - .filter((item) => item) + .filter(item => item) .sort((a, b) => a[0] - b[0]) - .forEach((item) => { + .forEach(item => { this._offsets.push(item[0]) this._targets.push(item[1]) }) @@ -139,14 +140,14 @@ class ScrollSpy { $.removeData(this._element, DATA_KEY) $(this._scrollElement).off(EVENT_KEY) - this._element = null + this._element = null this._scrollElement = null - this._config = null - this._selector = null - this._offsets = null - this._targets = null - this._activeTarget = null - this._scrollHeight = null + this._config = null + this._selector = null + this._offsets = null + this._targets = null + this._activeTarget = null + this._scrollHeight = null } // Private @@ -154,7 +155,7 @@ class ScrollSpy { _getConfig(config) { config = { ...Default, - ...typeof config === 'object' && config ? config : {} + ...(typeof config === 'object' && config ? config : {}) } if (typeof config.target !== 'string' && Util.isElement(config.target)) { @@ -163,6 +164,7 @@ class ScrollSpy { id = Util.getUID(NAME) $(config.target).attr('id', id) } + config.target = `#${id}` } @@ -172,8 +174,8 @@ class ScrollSpy { } _getScrollTop() { - return this._scrollElement === window - ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop + return this._scrollElement === window ? + this._scrollElement.pageYOffset : this._scrollElement.scrollTop } _getScrollHeight() { @@ -184,14 +186,14 @@ class ScrollSpy { } _getOffsetHeight() { - return this._scrollElement === window - ? window.innerHeight : this._scrollElement.getBoundingClientRect().height + return this._scrollElement === window ? + window.innerHeight : this._scrollElement.getBoundingClientRect().height } _process() { - const scrollTop = this._getScrollTop() + this._config.offset + const scrollTop = this._getScrollTop() + this._config.offset const scrollHeight = this._getScrollHeight() - const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight() + const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight() if (this._scrollHeight !== scrollHeight) { this.refresh() @@ -203,6 +205,7 @@ class ScrollSpy { if (this._activeTarget !== target) { this._activate(target) } + return } @@ -231,7 +234,7 @@ class ScrollSpy { const queries = this._selector .split(',') - .map((selector) => `${selector}[data-target="${target}"],${selector}[href="${target}"]`) + .map(selector => `${selector}[data-target="${target}"],${selector}[href="${target}"]`) const $link = $([].slice.call(document.querySelectorAll(queries.join(',')))) @@ -262,8 +265,8 @@ class ScrollSpy { _clear() { [].slice.call(document.querySelectorAll(this._selector)) - .filter((node) => node.classList.contains(CLASS_NAME_ACTIVE)) - .forEach((node) => node.classList.remove(CLASS_NAME_ACTIVE)) + .filter(node => node.classList.contains(CLASS_NAME_ACTIVE)) + .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE)) } // Static @@ -282,6 +285,7 @@ class ScrollSpy { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`) } + data[config]() } }) diff --git a/npm_assets/node_modules/bootstrap/js/src/tab.js b/npm_assets/node_modules/bootstrap/js/src/tab.js index 4e8981351b..5120164834 100644 --- a/npm_assets/node_modules/bootstrap/js/src/tab.js +++ b/npm_assets/node_modules/bootstrap/js/src/tab.js @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): tab.js + * Bootstrap (v4.5.3): tab.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -14,31 +14,31 @@ import Util from './util' * ------------------------------------------------------------------------ */ -const NAME = 'tab' -const VERSION = '4.5.2' -const DATA_KEY = 'bs.tab' -const EVENT_KEY = `.${DATA_KEY}` -const DATA_API_KEY = '.data-api' +const NAME = 'tab' +const VERSION = '4.5.3' +const DATA_KEY = 'bs.tab' +const EVENT_KEY = `.${DATA_KEY}` +const DATA_API_KEY = '.data-api' const JQUERY_NO_CONFLICT = $.fn[NAME] -const EVENT_HIDE = `hide${EVENT_KEY}` -const EVENT_HIDDEN = `hidden${EVENT_KEY}` -const EVENT_SHOW = `show${EVENT_KEY}` -const EVENT_SHOWN = `shown${EVENT_KEY}` +const EVENT_HIDE = `hide${EVENT_KEY}` +const EVENT_HIDDEN = `hidden${EVENT_KEY}` +const EVENT_SHOW = `show${EVENT_KEY}` +const EVENT_SHOWN = `shown${EVENT_KEY}` const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}` const CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu' -const CLASS_NAME_ACTIVE = 'active' -const CLASS_NAME_DISABLED = 'disabled' -const CLASS_NAME_FADE = 'fade' -const CLASS_NAME_SHOW = 'show' - -const SELECTOR_DROPDOWN = '.dropdown' -const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group' -const SELECTOR_ACTIVE = '.active' -const SELECTOR_ACTIVE_UL = '> li > .active' -const SELECTOR_DATA_TOGGLE = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]' -const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle' +const CLASS_NAME_ACTIVE = 'active' +const CLASS_NAME_DISABLED = 'disabled' +const CLASS_NAME_FADE = 'fade' +const CLASS_NAME_SHOW = 'show' + +const SELECTOR_DROPDOWN = '.dropdown' +const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group' +const SELECTOR_ACTIVE = '.active' +const SELECTOR_ACTIVE_UL = '> li > .active' +const SELECTOR_DATA_TOGGLE = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]' +const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle' const SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active' /** @@ -135,9 +135,9 @@ class Tab { // Private _activate(element, container, callback) { - const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') - ? $(container).find(SELECTOR_ACTIVE_UL) - : $(container).children(SELECTOR_ACTIVE) + const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? + $(container).find(SELECTOR_ACTIVE_UL) : + $(container).children(SELECTOR_ACTIVE) const active = activeElements[0] const isTransitioning = callback && (active && $(active).hasClass(CLASS_NAME_FADE)) @@ -220,6 +220,7 @@ class Tab { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`) } + data[config]() } }) diff --git a/npm_assets/node_modules/bootstrap/js/src/toast.js b/npm_assets/node_modules/bootstrap/js/src/toast.js index 8709d84e19..953879ebdd 100644 --- a/npm_assets/node_modules/bootstrap/js/src/toast.js +++ b/npm_assets/node_modules/bootstrap/js/src/toast.js @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): toast.js + * Bootstrap (v4.5.3): toast.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -14,33 +14,33 @@ import Util from './util' * ------------------------------------------------------------------------ */ -const NAME = 'toast' -const VERSION = '4.5.2' -const DATA_KEY = 'bs.toast' -const EVENT_KEY = `.${DATA_KEY}` +const NAME = 'toast' +const VERSION = '4.5.3' +const DATA_KEY = 'bs.toast' +const EVENT_KEY = `.${DATA_KEY}` const JQUERY_NO_CONFLICT = $.fn[NAME] const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}` -const EVENT_HIDE = `hide${EVENT_KEY}` -const EVENT_HIDDEN = `hidden${EVENT_KEY}` -const EVENT_SHOW = `show${EVENT_KEY}` -const EVENT_SHOWN = `shown${EVENT_KEY}` - -const CLASS_NAME_FADE = 'fade' -const CLASS_NAME_HIDE = 'hide' -const CLASS_NAME_SHOW = 'show' +const EVENT_HIDE = `hide${EVENT_KEY}` +const EVENT_HIDDEN = `hidden${EVENT_KEY}` +const EVENT_SHOW = `show${EVENT_KEY}` +const EVENT_SHOWN = `shown${EVENT_KEY}` + +const CLASS_NAME_FADE = 'fade' +const CLASS_NAME_HIDE = 'hide' +const CLASS_NAME_SHOW = 'show' const CLASS_NAME_SHOWING = 'showing' const DefaultType = { - animation : 'boolean', - autohide : 'boolean', - delay : 'number' + animation: 'boolean', + autohide: 'boolean', + delay: 'number' } const Default = { - animation : true, - autohide : true, - delay : 500 + animation: true, + autohide: true, + delay: 500 } const SELECTOR_DATA_DISMISS = '[data-dismiss="toast"]' @@ -54,7 +54,7 @@ const SELECTOR_DATA_DISMISS = '[data-dismiss="toast"]' class Toast { constructor(element, config) { this._element = element - this._config = this._getConfig(config) + this._config = this._getConfig(config) this._timeout = null this._setListeners() } @@ -142,7 +142,7 @@ class Toast { $.removeData(this._element, DATA_KEY) this._element = null - this._config = null + this._config = null } // Private @@ -151,7 +151,7 @@ class Toast { config = { ...Default, ...$(this._element).data(), - ...typeof config === 'object' && config ? config : {} + ...(typeof config === 'object' && config ? config : {}) } Util.typeCheckConfig( @@ -195,8 +195,8 @@ class Toast { static _jQueryInterface(config) { return this.each(function () { const $element = $(this) - let data = $element.data(DATA_KEY) - const _config = typeof config === 'object' && config + let data = $element.data(DATA_KEY) + const _config = typeof config === 'object' && config if (!data) { data = new Toast(this, _config) @@ -220,9 +220,9 @@ class Toast { * ------------------------------------------------------------------------ */ -$.fn[NAME] = Toast._jQueryInterface +$.fn[NAME] = Toast._jQueryInterface $.fn[NAME].Constructor = Toast -$.fn[NAME].noConflict = () => { +$.fn[NAME].noConflict = () => { $.fn[NAME] = JQUERY_NO_CONFLICT return Toast._jQueryInterface } diff --git a/npm_assets/node_modules/bootstrap/js/src/tools/sanitizer.js b/npm_assets/node_modules/bootstrap/js/src/tools/sanitizer.js index 5ad77f330d..57768e45f5 100644 --- a/npm_assets/node_modules/bootstrap/js/src/tools/sanitizer.js +++ b/npm_assets/node_modules/bootstrap/js/src/tools/sanitizer.js @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): tools/sanitizer.js + * Bootstrap (v4.5.3): tools/sanitizer.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -77,7 +77,7 @@ function allowedAttribute(attr, allowedAttributeList) { return true } - const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp) + const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp) // Check if a regular expression validates the attribute. for (let i = 0, len = regExp.length; i < len; i++) { @@ -116,7 +116,7 @@ export function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) { const attributeList = [].slice.call(el.attributes) const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []) - attributeList.forEach((attr) => { + attributeList.forEach(attr => { if (!allowedAttribute(attr, whitelistedAttributes)) { el.removeAttribute(attr.nodeName) } diff --git a/npm_assets/node_modules/bootstrap/js/src/tooltip.js b/npm_assets/node_modules/bootstrap/js/src/tooltip.js index c431459e1e..4b58f31565 100644 --- a/npm_assets/node_modules/bootstrap/js/src/tooltip.js +++ b/npm_assets/node_modules/bootstrap/js/src/tooltip.js @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): tooltip.js + * Bootstrap (v4.5.3): tooltip.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -19,88 +19,88 @@ import Util from './util' * ------------------------------------------------------------------------ */ -const NAME = 'tooltip' -const VERSION = '4.5.2' -const DATA_KEY = 'bs.tooltip' -const EVENT_KEY = `.${DATA_KEY}` -const JQUERY_NO_CONFLICT = $.fn[NAME] -const CLASS_PREFIX = 'bs-tooltip' -const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g') +const NAME = 'tooltip' +const VERSION = '4.5.3' +const DATA_KEY = 'bs.tooltip' +const EVENT_KEY = `.${DATA_KEY}` +const JQUERY_NO_CONFLICT = $.fn[NAME] +const CLASS_PREFIX = 'bs-tooltip' +const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g') const DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'] const DefaultType = { - animation : 'boolean', - template : 'string', - title : '(string|element|function)', - trigger : 'string', - delay : '(number|object)', - html : 'boolean', - selector : '(string|boolean)', - placement : '(string|function)', - offset : '(number|string|function)', - container : '(string|element|boolean)', - fallbackPlacement : '(string|array)', - boundary : '(string|element)', - sanitize : 'boolean', - sanitizeFn : '(null|function)', - whiteList : 'object', - popperConfig : '(null|object)' + animation: 'boolean', + template: 'string', + title: '(string|element|function)', + trigger: 'string', + delay: '(number|object)', + html: 'boolean', + selector: '(string|boolean)', + placement: '(string|function)', + offset: '(number|string|function)', + container: '(string|element|boolean)', + fallbackPlacement: '(string|array)', + boundary: '(string|element)', + sanitize: 'boolean', + sanitizeFn: '(null|function)', + whiteList: 'object', + popperConfig: '(null|object)' } const AttachmentMap = { - AUTO : 'auto', - TOP : 'top', - RIGHT : 'right', - BOTTOM : 'bottom', - LEFT : 'left' + AUTO: 'auto', + TOP: 'top', + RIGHT: 'right', + BOTTOM: 'bottom', + LEFT: 'left' } const Default = { - animation : true, - template : '<div class="tooltip" role="tooltip">' + + animation: true, + template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>', - trigger : 'hover focus', - title : '', - delay : 0, - html : false, - selector : false, - placement : 'top', - offset : 0, - container : false, - fallbackPlacement : 'flip', - boundary : 'scrollParent', - sanitize : true, - sanitizeFn : null, - whiteList : DefaultWhitelist, - popperConfig : null + trigger: 'hover focus', + title: '', + delay: 0, + html: false, + selector: false, + placement: 'top', + offset: 0, + container: false, + fallbackPlacement: 'flip', + boundary: 'scrollParent', + sanitize: true, + sanitizeFn: null, + whiteList: DefaultWhitelist, + popperConfig: null } const HOVER_STATE_SHOW = 'show' -const HOVER_STATE_OUT = 'out' +const HOVER_STATE_OUT = 'out' const Event = { - HIDE : `hide${EVENT_KEY}`, - HIDDEN : `hidden${EVENT_KEY}`, - SHOW : `show${EVENT_KEY}`, - SHOWN : `shown${EVENT_KEY}`, - INSERTED : `inserted${EVENT_KEY}`, - CLICK : `click${EVENT_KEY}`, - FOCUSIN : `focusin${EVENT_KEY}`, - FOCUSOUT : `focusout${EVENT_KEY}`, - MOUSEENTER : `mouseenter${EVENT_KEY}`, - MOUSELEAVE : `mouseleave${EVENT_KEY}` + HIDE: `hide${EVENT_KEY}`, + HIDDEN: `hidden${EVENT_KEY}`, + SHOW: `show${EVENT_KEY}`, + SHOWN: `shown${EVENT_KEY}`, + INSERTED: `inserted${EVENT_KEY}`, + CLICK: `click${EVENT_KEY}`, + FOCUSIN: `focusin${EVENT_KEY}`, + FOCUSOUT: `focusout${EVENT_KEY}`, + MOUSEENTER: `mouseenter${EVENT_KEY}`, + MOUSELEAVE: `mouseleave${EVENT_KEY}` } const CLASS_NAME_FADE = 'fade' const CLASS_NAME_SHOW = 'show' const SELECTOR_TOOLTIP_INNER = '.tooltip-inner' -const SELECTOR_ARROW = '.arrow' +const SELECTOR_ARROW = '.arrow' -const TRIGGER_HOVER = 'hover' -const TRIGGER_FOCUS = 'focus' -const TRIGGER_CLICK = 'click' +const TRIGGER_HOVER = 'hover' +const TRIGGER_FOCUS = 'focus' +const TRIGGER_CLICK = 'click' const TRIGGER_MANUAL = 'manual' /** @@ -116,16 +116,16 @@ class Tooltip { } // private - this._isEnabled = true - this._timeout = 0 - this._hoverState = '' + this._isEnabled = true + this._timeout = 0 + this._hoverState = '' this._activeTrigger = {} - this._popper = null + this._popper = null // Protected this.element = element - this.config = this._getConfig(config) - this.tip = null + this.config = this._getConfig(config) + this.tip = null this._setListeners() } @@ -220,9 +220,9 @@ class Tooltip { $(this.tip).remove() } - this._isEnabled = null - this._timeout = null - this._hoverState = null + this._isEnabled = null + this._timeout = null + this._hoverState = null this._activeTrigger = null if (this._popper) { this._popper.destroy() @@ -230,8 +230,8 @@ class Tooltip { this._popper = null this.element = null - this.config = null - this.tip = null + this.config = null + this.tip = null } show() { @@ -253,7 +253,7 @@ class Tooltip { return } - const tip = this.getTipElement() + const tip = this.getTipElement() const tipId = Util.getUID(this.constructor.NAME) tip.setAttribute('id', tipId) @@ -265,9 +265,9 @@ class Tooltip { $(tip).addClass(CLASS_NAME_FADE) } - const placement = typeof this.config.placement === 'function' - ? this.config.placement.call(this, tip, this.element) - : this.config.placement + const placement = typeof this.config.placement === 'function' ? + this.config.placement.call(this, tip, this.element) : + this.config.placement const attachment = this._getAttachment(placement) this.addAttachmentClass(attachment) @@ -297,8 +297,9 @@ class Tooltip { if (this.config.animation) { this._fixTransition() } + const prevHoverState = this._hoverState - this._hoverState = null + this._hoverState = null $(this.element).trigger(this.constructor.Event.SHOWN) @@ -320,7 +321,7 @@ class Tooltip { } hide(callback) { - const tip = this.getTipElement() + const tip = this.getTipElement() const hideEvent = $.Event(this.constructor.Event.HIDE) const complete = () => { if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) { @@ -426,9 +427,9 @@ class Tooltip { let title = this.element.getAttribute('data-original-title') if (!title) { - title = typeof this.config.title === 'function' - ? this.config.title.call(this.element) - : this.config.title + title = typeof this.config.title === 'function' ? + this.config.title.call(this.element) : + this.config.title } return title @@ -451,12 +452,12 @@ class Tooltip { boundariesElement: this.config.boundary } }, - onCreate: (data) => { + onCreate: data => { if (data.originalPlacement !== data.placement) { this._handlePopperPlacementChange(data) } }, - onUpdate: (data) => this._handlePopperPlacementChange(data) + onUpdate: data => this._handlePopperPlacementChange(data) } return { @@ -469,10 +470,10 @@ class Tooltip { const offset = {} if (typeof this.config.offset === 'function') { - offset.fn = (data) => { + offset.fn = data => { data.offsets = { ...data.offsets, - ...this.config.offset(data.offsets, this.element) || {} + ...(this.config.offset(data.offsets, this.element) || {}) } return data @@ -503,24 +504,24 @@ class Tooltip { _setListeners() { const triggers = this.config.trigger.split(' ') - triggers.forEach((trigger) => { + triggers.forEach(trigger => { if (trigger === 'click') { $(this.element).on( this.constructor.Event.CLICK, this.config.selector, - (event) => this.toggle(event) + event => this.toggle(event) ) } else if (trigger !== TRIGGER_MANUAL) { - const eventIn = trigger === TRIGGER_HOVER - ? this.constructor.Event.MOUSEENTER - : this.constructor.Event.FOCUSIN - const eventOut = trigger === TRIGGER_HOVER - ? this.constructor.Event.MOUSELEAVE - : this.constructor.Event.FOCUSOUT + const eventIn = trigger === TRIGGER_HOVER ? + this.constructor.Event.MOUSEENTER : + this.constructor.Event.FOCUSIN + const eventOut = trigger === TRIGGER_HOVER ? + this.constructor.Event.MOUSELEAVE : + this.constructor.Event.FOCUSOUT $(this.element) - .on(eventIn, this.config.selector, (event) => this._enter(event)) - .on(eventOut, this.config.selector, (event) => this._leave(event)) + .on(eventIn, this.config.selector, event => this._enter(event)) + .on(eventOut, this.config.selector, event => this._leave(event)) } }) @@ -647,7 +648,7 @@ class Tooltip { const dataAttributes = $(this.element).data() Object.keys(dataAttributes) - .forEach((dataAttr) => { + .forEach(dataAttr => { if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) { delete dataAttributes[dataAttr] } @@ -656,7 +657,7 @@ class Tooltip { config = { ...this.constructor.Default, ...dataAttributes, - ...typeof config === 'object' && config ? config : {} + ...(typeof config === 'object' && config ? config : {}) } if (typeof config.delay === 'number') { @@ -734,7 +735,8 @@ class Tooltip { static _jQueryInterface(config) { return this.each(function () { - let data = $(this).data(DATA_KEY) + const $element = $(this) + let data = $element.data(DATA_KEY) const _config = typeof config === 'object' && config if (!data && /dispose|hide/.test(config)) { @@ -743,13 +745,14 @@ class Tooltip { if (!data) { data = new Tooltip(this, _config) - $(this).data(DATA_KEY, data) + $element.data(DATA_KEY, data) } if (typeof config === 'string') { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`) } + data[config]() } }) diff --git a/npm_assets/node_modules/bootstrap/js/src/util.js b/npm_assets/node_modules/bootstrap/js/src/util.js index 9beafc4b56..6ce6ca50bb 100644 --- a/npm_assets/node_modules/bootstrap/js/src/util.js +++ b/npm_assets/node_modules/bootstrap/js/src/util.js @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.5.2): util.js + * Bootstrap (v4.5.3): util.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -34,6 +34,7 @@ function getSpecialTransitionEndEvent() { if ($(event.target).is(this)) { return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params } + return undefined } } @@ -71,9 +72,9 @@ const Util = { getUID(prefix) { do { - // eslint-disable-next-line no-bitwise prefix += ~~(Math.random() * MAX_UID) // "~~" acts like a faster Math.floor() here } while (document.getElementById(prefix)) + return prefix }, @@ -87,7 +88,7 @@ const Util = { try { return document.querySelector(selector) ? selector : null - } catch (err) { + } catch (_) { return null } }, @@ -124,7 +125,6 @@ const Util = { $(element).trigger(TRANSITION_END) }, - // TODO: Remove in v5 supportsTransitionEnd() { return Boolean(TRANSITION_END) }, @@ -137,9 +137,9 @@ const Util = { for (const property in configTypes) { if (Object.prototype.hasOwnProperty.call(configTypes, property)) { const expectedTypes = configTypes[property] - const value = config[property] - const valueType = value && Util.isElement(value) - ? 'element' : toType(value) + const value = config[property] + const valueType = value && Util.isElement(value) ? + 'element' : toType(value) if (!new RegExp(expectedTypes).test(valueType)) { throw new Error( diff --git a/npm_assets/node_modules/bootstrap/package.json b/npm_assets/node_modules/bootstrap/package.json index 5a3ad72132..7343246fc5 100644 --- a/npm_assets/node_modules/bootstrap/package.json +++ b/npm_assets/node_modules/bootstrap/package.json @@ -1,64 +1,135 @@ { - "_from": "bootstrap@4.5.2", - "_id": "bootstrap@4.5.2", - "_inBundle": false, - "_integrity": "sha512-vlGn0bcySYl/iV+BGA544JkkZP5LB3jsmkeKLFQakCOwCM3AOk7VkldBz4jrzSe+Z0Ezn99NVXa1o45cQY4R6A==", - "_location": "/bootstrap", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "bootstrap@4.5.2", - "name": "bootstrap", - "escapedName": "bootstrap", - "rawSpec": "4.5.2", - "saveSpec": null, - "fetchSpec": "4.5.2" - }, - "_requiredBy": [ - "#USER", - "/" + "name": "bootstrap", + "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", + "version": "4.5.3", + "version_short": "4.5", + "keywords": [ + "css", + "sass", + "mobile-first", + "responsive", + "front-end", + "framework", + "web" ], - "_resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.2.tgz", - "_shasum": "a85c4eda59155f0d71186b6e6ad9b875813779ab", - "_spec": "bootstrap@4.5.2", - "_where": "/Users/kwpolska/git/nikola/npm_assets", - "author": { - "name": "The Bootstrap Authors", - "url": "https://github.com/twbs/bootstrap/graphs/contributors" + "homepage": "https://getbootstrap.com/", + "author": "The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)", + "contributors": [ + "Twitter, Inc." + ], + "scripts": { + "start": "npm-run-all --parallel watch docs-serve", + "bundlewatch": "bundlewatch --config .bundlewatch.config.json", + "css": "npm-run-all css-compile css-prefix css-minify css-copy", + "css-copy": "cross-env-shell shx mkdir -p site/docs/$npm_package_version_short/dist/ && cross-env-shell shx cp -r dist/css/ site/docs/$npm_package_version_short/dist/", + "css-main": "npm-run-all css-lint css-compile-main css-prefix-main css-minify-main css-copy", + "css-docs": "npm-run-all css-compile-docs css-prefix-docs css-minify-docs", + "css-compile": "npm-run-all --parallel css-compile-*", + "css-compile-main": "node-sass --output-style expanded --source-map true --source-map-contents true --precision 6 scss/ -o dist/css/ && npm run css-copy", + "css-compile-docs": "cross-env-shell node-sass --output-style expanded --source-map true --source-map-contents true --precision 6 site/docs/$npm_package_version_short/assets/scss/docs.scss site/docs/$npm_package_version_short/assets/css/docs.min.css", + "css-lint": "npm-run-all --continue-on-error --parallel css-lint-*", + "css-lint-main": "stylelint \"scss/**/*.scss\" --cache --cache-location .cache/.stylelintcache --rd", + "css-lint-docs": "stylelint \"site/docs/**/assets/scss/*.scss\" \"site/docs/**/*.css\" --cache --cache-location .cache/.stylelintcache", + "css-lint-vars": "fusv scss/ site/docs/", + "css-minify": "npm-run-all --parallel css-minify-*", + "css-minify-main": "cleancss --level 1 --format breakWith=lf --source-map --source-map-inline-sources --output dist/css/bootstrap.min.css dist/css/bootstrap.css && cleancss --level 1 --format breakWith=lf --source-map --source-map-inline-sources --output dist/css/bootstrap-grid.min.css dist/css/bootstrap-grid.css && cleancss --level 1 --format breakWith=lf --source-map --source-map-inline-sources --output dist/css/bootstrap-reboot.min.css dist/css/bootstrap-reboot.css", + "css-minify-docs": "cross-env-shell cleancss --level 1 --format breakWith=lf --source-map --source-map-inline-sources --output site/docs/$npm_package_version_short/assets/css/docs.min.css site/docs/$npm_package_version_short/assets/css/docs.min.css", + "css-prefix": "npm-run-all --parallel css-prefix-*", + "css-prefix-main": "postcss --config build/postcss.config.js --replace \"dist/css/*.css\" \"!dist/css/*.min.css\"", + "css-prefix-docs": "postcss --config build/postcss.config.js --replace \"site/docs/**/*.css\"", + "js": "npm-run-all js-compile js-minify js-copy", + "js-copy": "cross-env-shell shx mkdir -p site/docs/$npm_package_version_short/dist/ && cross-env-shell shx cp -r dist/js/ site/docs/$npm_package_version_short/dist/", + "js-main": "npm-run-all js-lint js-compile js-minify-main", + "js-docs": "npm-run-all js-lint-docs js-minify-docs", + "js-compile": "npm-run-all --parallel js-compile-* --sequential js-copy", + "js-compile-standalone": "rollup --environment BUNDLE:false --config build/rollup.config.js --sourcemap", + "js-compile-bundle": "rollup --environment BUNDLE:true --config build/rollup.config.js --sourcemap", + "js-compile-plugins": "node build/build-plugins.js", + "js-compile-plugins-coverage": "cross-env NODE_ENV=test node build/build-plugins.js", + "js-lint": "npm-run-all --continue-on-error --parallel js-lint-*", + "js-lint-main": "eslint --report-unused-disable-directives --cache --cache-location .cache/.eslintcache js/src js/tests build/", + "js-lint-docs": "eslint --report-unused-disable-directives --cache --cache-location .cache/.eslintcache site/", + "js-minify": "npm-run-all --parallel js-minify-main js-minify-docs", + "js-minify-main": "npm-run-all js-minify-standalone js-minify-bundle", + "js-minify-standalone": "terser --compress typeofs=false --mangle --comments \"/^!/\" --source-map \"content=dist/js/bootstrap.js.map,includeSources,url=bootstrap.min.js.map\" --output dist/js/bootstrap.min.js dist/js/bootstrap.js", + "js-minify-bundle": "terser --compress typeofs=false --mangle --comments \"/^!/\" --source-map \"content=dist/js/bootstrap.bundle.js.map,includeSources,url=bootstrap.bundle.min.js.map\" --output dist/js/bootstrap.bundle.min.js dist/js/bootstrap.bundle.js", + "js-minify-docs": "cross-env-shell terser --mangle --comments \\\"/^!/\\\" --output site/docs/$npm_package_version_short/assets/js/docs.min.js site/docs/$npm_package_version_short/assets/js/vendor/anchor.min.js site/docs/$npm_package_version_short/assets/js/vendor/clipboard.min.js site/docs/$npm_package_version_short/assets/js/vendor/bs-custom-file-input.min.js \"site/docs/$npm_package_version_short/assets/js/src/*.js\"", + "js-test": "npm-run-all js-test-karma* js-test-integration", + "js-test-karma": "karma start js/tests/karma.conf.js", + "js-test-karma-old": "cross-env USE_OLD_JQUERY=true npm run js-test-karma", + "js-test-karma-bundle": "cross-env BUNDLE=true npm run js-test-karma", + "js-test-karma-bundle-old": "cross-env BUNDLE=true USE_OLD_JQUERY=true npm run js-test-karma", + "js-test-integration": "rollup --config js/tests/integration/rollup.bundle.js", + "js-test-cloud": "cross-env BROWSER=true npm run js-test-karma", + "lint": "npm-run-all --parallel js-lint css-lint lockfile-lint", + "docs": "npm-run-all css-docs js-docs docs-build docs-lint", + "docs-build": "bundle exec jekyll build", + "docs-compile": "npm run docs-build", + "docs-production": "cross-env JEKYLL_ENV=production npm run docs-build", + "docs-netlify": "cross-env JEKYLL_ENV=netlify npm run docs-build", + "docs-linkinator": "linkinator _gh_pages --recurse --silent --skip \"^(?!http://localhost)\"", + "docs-vnu": "node build/vnu-jar.js", + "docs-lint": "npm-run-all --parallel docs-vnu docs-linkinator", + "docs-serve": "bundle exec jekyll serve", + "docs-serve-only": "npm run docs-serve -- --skip-initial-build --no-watch", + "lockfile-lint": "lockfile-lint --allowed-hosts npm --allowed-schemes https: --empty-hostname false --type npm --path package-lock.json", + "update-deps": "ncu -u -x \"jquery,karma-browserstack-launcher,sinon\" && npm update && bundle update && cross-env-shell echo Manually update \\\"site/docs/$npm_package_version_short/assets/js/vendor/\\\"", + "release": "npm-run-all dist release-sri docs-production release-zip*", + "release-sri": "node build/generate-sri.js", + "release-version": "node build/change-version.js", + "release-zip": "cross-env-shell \"shx rm -rf bootstrap-$npm_package_version-dist && shx cp -r dist/ bootstrap-$npm_package_version-dist && zip -r9 bootstrap-$npm_package_version-dist.zip bootstrap-$npm_package_version-dist && shx rm -rf bootstrap-$npm_package_version-dist\"", + "release-zip-examples": "node build/zip-examples.js", + "dist": "npm-run-all --parallel css js", + "test": "npm-run-all lint dist js-test docs-build docs-lint", + "netlify": "npm-run-all dist release-sri docs-netlify", + "watch": "npm-run-all --parallel watch-*", + "watch-css-main": "nodemon --watch scss/ --ext scss --exec \"npm run css-main\"", + "watch-css-docs": "nodemon --watch \"site/docs/**/assets/scss/\" --ext scss --exec \"npm run css-docs\"", + "watch-js-main": "nodemon --watch js/src/ --ext js --exec \"npm run js-compile\"", + "watch-js-docs": "nodemon --watch \"site/docs/**/assets/js/src/\" --ext js --exec \"npm run js-docs\"" + }, + "style": "dist/css/bootstrap.css", + "sass": "scss/bootstrap.scss", + "main": "dist/js/bootstrap.js", + "repository": { + "type": "git", + "url": "git+https://github.com/twbs/bootstrap.git" }, "bugs": { "url": "https://github.com/twbs/bootstrap/issues" }, - "bundleDependencies": false, - "contributors": [ - { - "name": "Twitter, Inc." - } - ], + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + }, "dependencies": {}, - "deprecated": false, - "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", + "peerDependencies": { + "jquery": "1.9.1 - 3", + "popper.js": "^1.16.1" + }, "devDependencies": { - "@babel/cli": "^7.10.5", - "@babel/core": "^7.11.0", - "@babel/preset-env": "^7.11.0", - "@rollup/plugin-babel": "^5.1.0", - "@rollup/plugin-commonjs": "^14.0.0", - "@rollup/plugin-node-resolve": "^8.4.0", + "@babel/cli": "^7.11.6", + "@babel/core": "^7.11.6", + "@babel/preset-env": "^7.11.5", + "@rollup/plugin-babel": "^5.2.1", + "@rollup/plugin-commonjs": "^15.1.0", + "@rollup/plugin-node-resolve": "^9.0.0", "autoprefixer": "^9.8.6", - "babel-eslint": "^10.1.0", "babel-plugin-istanbul": "^6.0.0", - "bundlewatch": "^0.2.7", + "bundlewatch": "^0.3.1", "clean-css-cli": "^4.3.0", "cross-env": "^7.0.2", - "eslint": "^7.6.0", + "eslint": "^7.11.0", + "eslint-config-xo": "^0.32.1", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-unicorn": "^22.0.0", "find-unused-sass-variables": "^2.0.0", "glob": "^7.1.6", "hammer-simulator": "0.0.1", "ip": "^1.1.5", "jquery": "^3.5.1", - "karma": "^5.1.1", + "karma": "^5.2.3", "karma-browserstack-launcher": "1.4.0", "karma-chrome-launcher": "^3.1.0", "karma-coverage-istanbul-reporter": "^3.0.3", @@ -66,20 +137,20 @@ "karma-firefox-launcher": "^1.3.0", "karma-qunit": "^4.1.1", "karma-sinon": "^1.0.5", - "linkinator": "^2.1.1", + "linkinator": "^2.1.3", "lockfile-lint": "^4.3.7", "node-sass": "^4.14.1", "nodemon": "^2.0.4", "npm-run-all": "^4.1.5", "popper.js": "^1.16.1", - "postcss-cli": "^7.1.1", - "qunit": "^2.10.1", - "rollup": "^2.23.0", + "postcss-cli": "^7.1.2", + "qunit": "^2.11.3", + "rollup": "^2.29.0", "shelljs": "^0.8.4", "shx": "^0.3.2", "sinon": "^7.5.0", - "stylelint": "^13.6.1", - "stylelint-config-twbs-bootstrap": "^2.0.3", + "stylelint": "^13.7.2", + "stylelint-config-twbs-bootstrap": "^2.1.0", "terser": "^4.8.0", "vnu-jar": "20.6.30" }, @@ -88,11 +159,6 @@ "js/{src,dist}/**/*.{js,map}", "scss/**/*.scss" ], - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - }, - "homepage": "https://getbootstrap.com/", "jspm": { "registry": "npm", "main": "js/bootstrap", @@ -113,100 +179,5 @@ "jquery": "1.9.1 - 3", "popper.js": "^1.16.1" } - }, - "keywords": [ - "css", - "sass", - "mobile-first", - "responsive", - "front-end", - "framework", - "web" - ], - "license": "MIT", - "main": "dist/js/bootstrap.js", - "name": "bootstrap", - "peerDependencies": { - "jquery": "1.9.1 - 3", - "popper.js": "^1.16.1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/twbs/bootstrap.git" - }, - "sass": "scss/bootstrap.scss", - "scripts": { - "bundlewatch": "bundlewatch --config .bundlewatch.config.json", - "css": "npm-run-all css-compile css-prefix css-minify css-copy", - "css-compile": "npm-run-all --parallel css-compile-*", - "css-compile-docs": "cross-env-shell node-sass --output-style expanded --source-map true --source-map-contents true --precision 6 site/docs/$npm_package_version_short/assets/scss/docs.scss site/docs/$npm_package_version_short/assets/css/docs.min.css", - "css-compile-main": "node-sass --output-style expanded --source-map true --source-map-contents true --precision 6 scss/ -o dist/css/ && npm run css-copy", - "css-copy": "cross-env-shell shx mkdir -p site/docs/$npm_package_version_short/dist/ && cross-env-shell shx cp -r dist/css/ site/docs/$npm_package_version_short/dist/", - "css-docs": "npm-run-all css-compile-docs css-prefix-docs css-minify-docs", - "css-lint": "npm-run-all --continue-on-error --parallel css-lint-*", - "css-lint-docs": "stylelint \"site/docs/**/assets/scss/*.scss\" \"site/docs/**/*.css\" --cache --cache-location .cache/.stylelintcache", - "css-lint-main": "stylelint \"scss/**/*.scss\" --cache --cache-location .cache/.stylelintcache", - "css-lint-vars": "fusv scss/ site/docs/", - "css-main": "npm-run-all css-lint css-compile-main css-prefix-main css-minify-main css-copy", - "css-minify": "npm-run-all --parallel css-minify-*", - "css-minify-docs": "cross-env-shell cleancss --level 1 --format breakWith=lf --source-map --source-map-inline-sources --output site/docs/$npm_package_version_short/assets/css/docs.min.css site/docs/$npm_package_version_short/assets/css/docs.min.css", - "css-minify-main": "cleancss --level 1 --format breakWith=lf --source-map --source-map-inline-sources --output dist/css/bootstrap.min.css dist/css/bootstrap.css && cleancss --level 1 --format breakWith=lf --source-map --source-map-inline-sources --output dist/css/bootstrap-grid.min.css dist/css/bootstrap-grid.css && cleancss --level 1 --format breakWith=lf --source-map --source-map-inline-sources --output dist/css/bootstrap-reboot.min.css dist/css/bootstrap-reboot.css", - "css-prefix": "npm-run-all --parallel css-prefix-*", - "css-prefix-docs": "postcss --config build/postcss.config.js --replace \"site/docs/**/*.css\"", - "css-prefix-main": "postcss --config build/postcss.config.js --replace \"dist/css/*.css\" \"!dist/css/*.min.css\"", - "dist": "npm-run-all --parallel css js", - "docs": "npm-run-all css-docs js-docs docs-build docs-lint", - "docs-build": "bundle exec jekyll build", - "docs-compile": "npm run docs-build", - "docs-linkinator": "linkinator _gh_pages --recurse --silent --skip \"^(?!http://localhost)\"", - "docs-lint": "npm-run-all --parallel docs-vnu docs-linkinator", - "docs-netlify": "cross-env JEKYLL_ENV=netlify npm run docs-build", - "docs-production": "cross-env JEKYLL_ENV=production npm run docs-build", - "docs-serve": "bundle exec jekyll serve", - "docs-serve-only": "npm run docs-serve -- --skip-initial-build --no-watch", - "docs-vnu": "node build/vnu-jar.js", - "js": "npm-run-all js-compile js-minify js-copy", - "js-compile": "npm-run-all --parallel js-compile-* --sequential js-copy", - "js-compile-bundle": "rollup --environment BUNDLE:true --config build/rollup.config.js --sourcemap", - "js-compile-plugins": "node build/build-plugins.js", - "js-compile-plugins-coverage": "cross-env NODE_ENV=test node build/build-plugins.js", - "js-compile-standalone": "rollup --environment BUNDLE:false --config build/rollup.config.js --sourcemap", - "js-copy": "cross-env-shell shx mkdir -p site/docs/$npm_package_version_short/dist/ && cross-env-shell shx cp -r dist/js/ site/docs/$npm_package_version_short/dist/", - "js-docs": "npm-run-all js-lint-docs js-minify-docs", - "js-lint": "npm-run-all --continue-on-error --parallel js-lint-*", - "js-lint-docs": "eslint --report-unused-disable-directives --cache --cache-location .cache/.eslintcache site/", - "js-lint-main": "eslint --report-unused-disable-directives --cache --cache-location .cache/.eslintcache js/src js/tests build/", - "js-main": "npm-run-all js-lint js-compile js-minify-main", - "js-minify": "npm-run-all --parallel js-minify-main js-minify-docs", - "js-minify-bundle": "terser --compress typeofs=false --mangle --comments \"/^!/\" --source-map \"content=dist/js/bootstrap.bundle.js.map,includeSources,url=bootstrap.bundle.min.js.map\" --output dist/js/bootstrap.bundle.min.js dist/js/bootstrap.bundle.js", - "js-minify-docs": "cross-env-shell terser --mangle --comments \\\"/^!/\\\" --output site/docs/$npm_package_version_short/assets/js/docs.min.js site/docs/$npm_package_version_short/assets/js/vendor/anchor.min.js site/docs/$npm_package_version_short/assets/js/vendor/clipboard.min.js site/docs/$npm_package_version_short/assets/js/vendor/bs-custom-file-input.min.js \"site/docs/$npm_package_version_short/assets/js/src/*.js\"", - "js-minify-main": "npm-run-all js-minify-standalone js-minify-bundle", - "js-minify-standalone": "terser --compress typeofs=false --mangle --comments \"/^!/\" --source-map \"content=dist/js/bootstrap.js.map,includeSources,url=bootstrap.min.js.map\" --output dist/js/bootstrap.min.js dist/js/bootstrap.js", - "js-test": "npm-run-all js-test-karma* js-test-integration", - "js-test-cloud": "cross-env BROWSER=true npm run js-test-karma", - "js-test-integration": "rollup --config js/tests/integration/rollup.bundle.js", - "js-test-karma": "karma start js/tests/karma.conf.js", - "js-test-karma-bundle": "cross-env BUNDLE=true npm run js-test-karma", - "js-test-karma-bundle-old": "cross-env BUNDLE=true USE_OLD_JQUERY=true npm run js-test-karma", - "js-test-karma-old": "cross-env USE_OLD_JQUERY=true npm run js-test-karma", - "lint": "npm-run-all --parallel js-lint css-lint lockfile-lint", - "lockfile-lint": "lockfile-lint --allowed-hosts npm --allowed-schemes https: --empty-hostname false --type npm --path package-lock.json", - "netlify": "npm-run-all dist release-sri docs-netlify", - "release": "npm-run-all dist release-sri docs-production release-zip*", - "release-sri": "node build/generate-sri.js", - "release-version": "node build/change-version.js", - "release-zip": "cross-env-shell \"shx rm -rf bootstrap-$npm_package_version-dist && shx cp -r dist/ bootstrap-$npm_package_version-dist && zip -r9 bootstrap-$npm_package_version-dist.zip bootstrap-$npm_package_version-dist && shx rm -rf bootstrap-$npm_package_version-dist\"", - "release-zip-examples": "node build/zip-examples.js", - "start": "npm-run-all --parallel watch docs-serve", - "test": "npm-run-all lint dist js-test docs-build docs-lint", - "update-deps": "ncu -u -x \"jquery,karma-browserstack-launcher,sinon\" && npm update && bundle update && cross-env-shell echo Manually update \\\"site/docs/$npm_package_version_short/assets/js/vendor/\\\"", - "watch": "npm-run-all --parallel watch-*", - "watch-css-docs": "nodemon --watch \"site/docs/**/assets/scss/\" --ext scss --exec \"npm run css-docs\"", - "watch-css-main": "nodemon --watch scss/ --ext scss --exec \"npm run css-main\"", - "watch-js-docs": "nodemon --watch \"site/docs/**/assets/js/src/\" --ext js --exec \"npm run js-docs\"", - "watch-js-main": "nodemon --watch js/src/ --ext js --exec \"npm run js-compile\"" - }, - "style": "dist/css/bootstrap.css", - "version": "4.5.2", - "version_short": "4.5" + } } diff --git a/npm_assets/node_modules/bootstrap/scss/_alert.scss b/npm_assets/node_modules/bootstrap/scss/_alert.scss index da2a98af94..4aa1fc2039 100644 --- a/npm_assets/node_modules/bootstrap/scss/_alert.scss +++ b/npm_assets/node_modules/bootstrap/scss/_alert.scss @@ -34,6 +34,7 @@ position: absolute; top: 0; right: 0; + z-index: 2; padding: $alert-padding-y $alert-padding-x; color: inherit; } diff --git a/npm_assets/node_modules/bootstrap/scss/_card.scss b/npm_assets/node_modules/bootstrap/scss/_card.scss index 7c35f7ed8f..faaa75ef7f 100644 --- a/npm_assets/node_modules/bootstrap/scss/_card.scss +++ b/npm_assets/node_modules/bootstrap/scss/_card.scss @@ -206,12 +206,12 @@ .card-img-top, .card-header { - // stylelint-disable-next-line property-blacklist + // stylelint-disable-next-line property-disallowed-list border-top-right-radius: 0; } .card-img-bottom, .card-footer { - // stylelint-disable-next-line property-blacklist + // stylelint-disable-next-line property-disallowed-list border-bottom-right-radius: 0; } } @@ -221,12 +221,12 @@ .card-img-top, .card-header { - // stylelint-disable-next-line property-blacklist + // stylelint-disable-next-line property-disallowed-list border-top-left-radius: 0; } .card-img-bottom, .card-footer { - // stylelint-disable-next-line property-blacklist + // stylelint-disable-next-line property-disallowed-list border-bottom-left-radius: 0; } } diff --git a/npm_assets/node_modules/bootstrap/scss/_custom-forms.scss b/npm_assets/node_modules/bootstrap/scss/_custom-forms.scss index 9aeeeda7f3..0057b330f1 100644 --- a/npm_assets/node_modules/bootstrap/scss/_custom-forms.scss +++ b/npm_assets/node_modules/bootstrap/scss/_custom-forms.scss @@ -13,6 +13,7 @@ display: block; min-height: $font-size-base * $line-height-base; padding-left: $custom-control-gutter + $custom-control-indicator-size; + color-adjust: exact; // Keep themed appearance for print } .custom-control-inline { @@ -38,7 +39,7 @@ &:focus ~ .custom-control-label::before { // the mixin is not used here to make sure there is feedback @if $enable-shadows { - box-shadow: $input-box-shadow, $input-focus-box-shadow; + box-shadow: $input-box-shadow, $custom-control-indicator-focus-box-shadow; } @else { box-shadow: $custom-control-indicator-focus-box-shadow; } @@ -150,7 +151,7 @@ .custom-radio { .custom-control-label::before { - // stylelint-disable-next-line property-blacklist + // stylelint-disable-next-line property-disallowed-list border-radius: $custom-radio-indicator-border-radius; } @@ -180,7 +181,7 @@ left: -($custom-switch-width + $custom-control-gutter); width: $custom-switch-width; pointer-events: all; - // stylelint-disable-next-line property-blacklist + // stylelint-disable-next-line property-disallowed-list border-radius: $custom-switch-indicator-border-radius; } @@ -190,7 +191,7 @@ width: $custom-switch-indicator-size; height: $custom-switch-indicator-size; background-color: $custom-control-indicator-border-color; - // stylelint-disable-next-line property-blacklist + // stylelint-disable-next-line property-disallowed-list border-radius: $custom-switch-indicator-border-radius; @include transition(transform .15s ease-in-out, $custom-forms-transition); } diff --git a/npm_assets/node_modules/bootstrap/scss/_dropdown.scss b/npm_assets/node_modules/bootstrap/scss/_dropdown.scss index 2ab7536e13..a8aaa585c1 100644 --- a/npm_assets/node_modules/bootstrap/scss/_dropdown.scss +++ b/npm_assets/node_modules/bootstrap/scss/_dropdown.scss @@ -22,7 +22,7 @@ display: none; // none by default, but block on "open" of the menu float: left; min-width: $dropdown-min-width; - padding: $dropdown-padding-y 0; + padding: $dropdown-padding-y $dropdown-padding-x; margin: $dropdown-spacer 0 0; // override default ul @include font-size($dropdown-font-size); color: $dropdown-color; diff --git a/npm_assets/node_modules/bootstrap/scss/_functions.scss b/npm_assets/node_modules/bootstrap/scss/_functions.scss index eb2471d753..9c06603150 100644 --- a/npm_assets/node_modules/bootstrap/scss/_functions.scss +++ b/npm_assets/node_modules/bootstrap/scss/_functions.scss @@ -51,6 +51,9 @@ } // See https://codepen.io/kevinweber/pen/dXWoRw +// +// Requires the use of quotes around data URIs. + @function escape-svg($string) { @if str-index($string, "data:image/svg+xml") { @each $char, $encoded in $escaped-characters { diff --git a/npm_assets/node_modules/bootstrap/scss/_list-group.scss b/npm_assets/node_modules/bootstrap/scss/_list-group.scss index 37c307e226..ec25ba8a1f 100644 --- a/npm_assets/node_modules/bootstrap/scss/_list-group.scss +++ b/npm_assets/node_modules/bootstrap/scss/_list-group.scss @@ -111,7 +111,7 @@ margin-top: 0; } - & + .list-group-item { + + .list-group-item { border-top-width: $list-group-border-width; border-left-width: 0; diff --git a/npm_assets/node_modules/bootstrap/scss/_reboot.scss b/npm_assets/node_modules/bootstrap/scss/_reboot.scss index 4444ff0f07..6f73466d3b 100644 --- a/npm_assets/node_modules/bootstrap/scss/_reboot.scss +++ b/npm_assets/node_modules/bootstrap/scss/_reboot.scss @@ -278,10 +278,14 @@ caption { caption-side: bottom; } +// 1. Removes font-weight bold by inheriting +// 2. Matches default `<td>` alignment by inheriting `text-align`. +// 3. Fix alignment for Safari + th { - // Matches default `<td>` alignment by inheriting from the `<body>`, or the - // closest parent with a set `text-align`. - text-align: inherit; + font-weight: $table-th-font-weight; // 1 + text-align: inherit; // 2 + text-align: -webkit-match-parent; // 3 } @@ -299,7 +303,7 @@ label { // // Details at https://github.com/twbs/bootstrap/issues/24093 button { - // stylelint-disable-next-line property-blacklist + // stylelint-disable-next-line property-disallowed-list border-radius: 0; } diff --git a/npm_assets/node_modules/bootstrap/scss/_spinners.scss b/npm_assets/node_modules/bootstrap/scss/_spinners.scss index 27c9241a79..146c820675 100644 --- a/npm_assets/node_modules/bootstrap/scss/_spinners.scss +++ b/npm_assets/node_modules/bootstrap/scss/_spinners.scss @@ -13,7 +13,7 @@ vertical-align: text-bottom; border: $spinner-border-width solid currentColor; border-right-color: transparent; - // stylelint-disable-next-line property-blacklist + // stylelint-disable-next-line property-disallowed-list border-radius: 50%; animation: spinner-border .75s linear infinite; } @@ -44,7 +44,7 @@ height: $spinner-height; vertical-align: text-bottom; background-color: currentColor; - // stylelint-disable-next-line property-blacklist + // stylelint-disable-next-line property-disallowed-list border-radius: 50%; opacity: 0; animation: spinner-grow .75s linear infinite; diff --git a/npm_assets/node_modules/bootstrap/scss/_variables.scss b/npm_assets/node_modules/bootstrap/scss/_variables.scss index 3ff0c65b35..d7171e5a4b 100644 --- a/npm_assets/node_modules/bootstrap/scss/_variables.scss +++ b/npm_assets/node_modules/bootstrap/scss/_variables.scss @@ -363,6 +363,7 @@ $table-border-color: $border-color !default; $table-head-bg: $gray-200 !default; $table-head-color: $gray-700 !default; +$table-th-font-weight: null !default; $table-dark-color: $white !default; $table-dark-bg: $gray-800 !default; @@ -755,6 +756,7 @@ $navbar-dark-brand-hover-color: $navbar-dark-active-color !default; // Dropdown menu container and contents. $dropdown-min-width: 10rem !default; +$dropdown-padding-x: 0 !default; $dropdown-padding-y: .5rem !default; $dropdown-spacer: .125rem !default; $dropdown-font-size: $font-size-base !default; diff --git a/npm_assets/node_modules/bootstrap/scss/bootstrap-grid.scss b/npm_assets/node_modules/bootstrap/scss/bootstrap-grid.scss index 06c9e2c4b3..a5cf3b7896 100644 --- a/npm_assets/node_modules/bootstrap/scss/bootstrap-grid.scss +++ b/npm_assets/node_modules/bootstrap/scss/bootstrap-grid.scss @@ -1,5 +1,5 @@ /*! - * Bootstrap Grid v4.5.2 (https://getbootstrap.com/) + * Bootstrap Grid v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors * Copyright 2011-2020 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) diff --git a/npm_assets/node_modules/bootstrap/scss/bootstrap-reboot.scss b/npm_assets/node_modules/bootstrap/scss/bootstrap-reboot.scss index d922d75fb4..de63f528bf 100644 --- a/npm_assets/node_modules/bootstrap/scss/bootstrap-reboot.scss +++ b/npm_assets/node_modules/bootstrap/scss/bootstrap-reboot.scss @@ -1,5 +1,5 @@ /*! - * Bootstrap Reboot v4.5.2 (https://getbootstrap.com/) + * Bootstrap Reboot v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors * Copyright 2011-2020 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) diff --git a/npm_assets/node_modules/bootstrap/scss/bootstrap.scss b/npm_assets/node_modules/bootstrap/scss/bootstrap.scss index 4d6521c0b0..0a206557be 100644 --- a/npm_assets/node_modules/bootstrap/scss/bootstrap.scss +++ b/npm_assets/node_modules/bootstrap/scss/bootstrap.scss @@ -1,5 +1,5 @@ /*! - * Bootstrap v4.5.2 (https://getbootstrap.com/) + * Bootstrap v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors * Copyright 2011-2020 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) diff --git a/npm_assets/node_modules/bootstrap/scss/mixins/_border-radius.scss b/npm_assets/node_modules/bootstrap/scss/mixins/_border-radius.scss index aee9bf3d3e..4fad91d676 100644 --- a/npm_assets/node_modules/bootstrap/scss/mixins/_border-radius.scss +++ b/npm_assets/node_modules/bootstrap/scss/mixins/_border-radius.scss @@ -1,4 +1,4 @@ -// stylelint-disable property-blacklist +// stylelint-disable property-disallowed-list // Single side border-radius // Helper function to replace negative values with 0 diff --git a/npm_assets/node_modules/bootstrap/scss/mixins/_grid.scss b/npm_assets/node_modules/bootstrap/scss/mixins/_grid.scss index b72d150e4d..19babc09fb 100644 --- a/npm_assets/node_modules/bootstrap/scss/mixins/_grid.scss +++ b/npm_assets/node_modules/bootstrap/scss/mixins/_grid.scss @@ -62,7 +62,7 @@ // numberof columns. Supports wrapping to new lines, but does not do a Masonry // style grid. @mixin row-cols($count) { - & > * { + > * { flex: 0 0 100% / $count; max-width: 100% / $count; } diff --git a/npm_assets/node_modules/bootstrap/scss/mixins/_screen-reader.scss b/npm_assets/node_modules/bootstrap/scss/mixins/_screen-reader.scss index 21230390eb..6913442b83 100644 --- a/npm_assets/node_modules/bootstrap/scss/mixins/_screen-reader.scss +++ b/npm_assets/node_modules/bootstrap/scss/mixins/_screen-reader.scss @@ -1,6 +1,6 @@ // Only display content to screen readers // -// See: https://a11yproject.com/posts/how-to-hide-content/ +// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/ // See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/ @mixin sr-only() { diff --git a/npm_assets/node_modules/bootstrap/scss/mixins/_transition.scss b/npm_assets/node_modules/bootstrap/scss/mixins/_transition.scss index 54553deb9c..54870bf6a8 100644 --- a/npm_assets/node_modules/bootstrap/scss/mixins/_transition.scss +++ b/npm_assets/node_modules/bootstrap/scss/mixins/_transition.scss @@ -1,4 +1,4 @@ -// stylelint-disable property-blacklist +// stylelint-disable property-disallowed-list @mixin transition($transition...) { @if length($transition) == 0 { $transition: $transition-base; diff --git a/npm_assets/node_modules/bootstrap/scss/utilities/_borders.scss b/npm_assets/node_modules/bootstrap/scss/utilities/_borders.scss index 302f6bf849..205f3fc24e 100644 --- a/npm_assets/node_modules/bootstrap/scss/utilities/_borders.scss +++ b/npm_assets/node_modules/bootstrap/scss/utilities/_borders.scss @@ -1,4 +1,4 @@ -// stylelint-disable property-blacklist, declaration-no-important +// stylelint-disable property-disallowed-list, declaration-no-important // // Border diff --git a/npm_assets/node_modules/bootstrap/scss/utilities/_text.scss b/npm_assets/node_modules/bootstrap/scss/utilities/_text.scss index 5d0f1c845f..3a9f83edf0 100644 --- a/npm_assets/node_modules/bootstrap/scss/utilities/_text.scss +++ b/npm_assets/node_modules/bootstrap/scss/utilities/_text.scss @@ -63,8 +63,8 @@ .text-decoration-none { text-decoration: none !important; } .text-break { - word-break: break-word !important; // IE & < Edge 18 - overflow-wrap: break-word !important; + word-break: break-word !important; // Deprecated, but avoids issues with flex containers + word-wrap: break-word !important; // Used instead of `overflow-wrap` for IE & Edge Legacy } // Reset diff --git a/npm_assets/node_modules/luxon/CHANGELOG.md b/npm_assets/node_modules/luxon/CHANGELOG.md new file mode 100644 index 0000000000..c39fb4f5f5 --- /dev/null +++ b/npm_assets/node_modules/luxon/CHANGELOG.md @@ -0,0 +1,513 @@ +# Changelog + +## 1.25.0 + + * fix fromFormat with Intl formats containing non-breaking spaces + * Support higher precisision in ISO milliseconds + * Some fixes for 00:30 timezones + * Fix some throwOnInvalid for invalid Intervals + * Various doc fixes + * Fix Interval#isSame for empty intervals + * Mark package as side effect-free + * Add support for intervals with a large number of seconds + +## 1.24.1 (2020-05-04) + + * Remove erroneous `console.log` call + +## 1.24.0 (2020-05-03) + + * Update polyfills for pollyfilled build + +## 1.23.0 (2020-04-02) + + * Allow minus sign prefix when creating Duration from ISO + +## 1.22.2 (2020-03-25) + + * Added more details to error messages for type errors + +## 1.22.1 (2020-03-19) + + * Added support for ISO basic format to DateTime#toISO + +## 1.22.0 (2020-01-26) + + * Fix setZone's handling of pre-1970 dates with milisecond components + * Fix keepLocalTime for large jumps near the target zone's DST + * Fix cache perf for toRelative() + +## 1.21.3 (2019-11-28) + + * Fix parsing of meridiems in macro tokens in newer versions of v8 + +## 1.21.2 (2019-11-18) + + * Fix bug in Chrome Canary that threw off time zone calculations + +## 1.21.1 (2019-11-03) + + * Fix for quarter parsing + * Some documentation updates + +## 1.21.0 (2019-10-30) + + * Added quarter support to the parser + * Fix some rounding issues in ISO formatting + +## 1.20.0 (2019-10-29) + + * Added Duration#mapUnits + * added Interval#toISODate and Interval#toISOTime + * Some documentation fixes + +## 1.19.3 + + * Cache offset values + * Fix handling of negative sub 1-hour offsets + +## 1.19.2 + + * Speculative fix for Node 6 + +## 1.19.1 + + * Fix Intl.DateTimeFormat usage for polyfills + +## 1.19.0 + + * Interval#splitAt now ignores input dates outside the interval + * Don't allow decimals in DateTime creation + +## 1.18.2 + + * Fix handling of decimals in DateTime#plus and #minus + +## 1.18.1 + + * Fix validity when adding or subtracting time that exceeds Date max/min boundaries + +## 1.18.0 + + * Add support for macro tokens in the parser + +## 1.17.2 + + * Fix issue with `toRelative` using `style: short` with plural days + +## 1.17.1 + + * Reject out-of-range numbers in DateTime.fromMillis + * Reject 0s in ISO date inputs + +## 1.17.0 + + * DateTime.min and DateTime.max throw if they get the wrong kind of arguments + * Fixed throwOnInvalid logic for Interval + * Added `DATETIME_MED_WITH_WEEKDAY` preset + +## 1.16.1 + + * Catch errors trying to use Intl in weird versions of IE 11 + +## 1.16.0 + + * Fixed locale default logic for `DateTime#toFormat("ZZZZ") + +## 1.15.0 + + * Added `formatOffset` to Zones + +## 1.14.0 + + * Allow the zone argument to Interval.fromISO with duration components + * Ignore the zone argument to Duration factory methods + +## 1.13.3 + + * Fix keepLocalTime calculations that span offset changes + +## 1.13.2 + + * Fixed ISO formatting for dates > 999 + +## 1.13.1 + + * Performance improvements for regex parsing + +## 1.13.0 + + * Support numberSystem in fromFormat + * Fix validity for bad initial zone specifiers + +## 1.12.1 + + * Fix cross-month diffs in some scenarios + * Fix time zone parsing when the time zone isn't at the end + * Memoize IANA zone creation + +## 1.12.0 + + * Add some explicit CDN support to the NPM package + * Add week token to duration ISO support + * Lots of cleanup and test coverage changes + +## 1.11.4 + + * `setZone("local")` now returns the defaultZone if it is set + * Fixes for the polyfilled build + +## 1.11.3 + + * Allow 24:00 in ISO (and other) strings + * Fix some bugs with the typecheck functions like `DateTime.isDateTime()` + +## 1.11.2 + + * Fixed handling of some characters in fromFormat literal sections + * Hanlde string values in object arguments to DateTime methods + * Fixed toRelativeCalendar's handling of zones in the base date + +## 1.11.1 + + * Fix DateTime#plus() when spanning across AD 100 + +## 1.11.0 + + * Fix low-year handling for IANA zones + * `DateTime#toLocal()` now uses the default locale + * Fix zero duration formatting + * Many documentation fixes + +## 1.10.0 + +- Fix endOf("day") during DSTs (#399) +- Add `Interval#mapEndpoints (#400) +- Add `DateTime#zone` and `Info.normalizeZone` (#404) + +## 1.9.0 + +- Add `DateTime#toRelative` and `DateTime#toRelativeCalendar` + +## 1.8.3 + +- Allow "UTC" in the zone position of `fromSQL` +- Force `isDateTime` and `isDuration` to return booleans in all cases + +## 1.8.2 + +- Trim leading \u200e characters from offset names in Edge 16 and 17 + +## 1.8.1 + +- Add `DateTime.fromSeconds` and `DateTime#toSeconds` + +## 1.7.1 + +- Floor the seconds instead of rounding them when outputting the 'X' format +- Change the options to toLocale to override the configuration (the previous options were essentially ignored) + +## 1.6.2 + +- Fixing merge error that resulted in bad error messages + +## 1.6.0 + +- **midly breaking** Rework negative durations +- Fix handling weekdays at the end of leap week years +- Add isDuration, isDateTime, and isInterval +- Fix handling of Luxon object arguments passed from other execution contexts + +## 1.5.0 + +- Improved error message +- Added DateTime#invalidExplanation, Duration#invalidExplanation, Interval#invalidExplanation to provide more details on invalid objects + +## 1.4.6 + +- Cache Intl objects for an 85x speed up on basic operations using non-en locales + +## 1.4.5 + +- Fix minified builds + +## 1.4.4 + +- Fix hour formatting in RFC822 strings +- Interval.fromISO accepts formats with durations + +## 1.4.3 + +Removal accidentally-introduced runtime dependency + +## 1.4.2 + +- Handle locale strings with BCP 47 extensions. Especially helpful for environments with funky default locales +- Support for [weekYear]-W[weekNumber] ISO 8601 strings + +## 1.4.1 + +- Empty diffs now have all the asked-for units in them, set at 0 +- Duration operations perserve the superset of units + +## 1.4.0 + +- Add x and X to toFormat for formatting Epoch seconds and Epoch milliseconds +- Parser allows a wider range of IANA zone specifiers +- BREAKING: Etc/GMT+10 is now interpreted as UTC-10, per spec + +## 1.3.3 + +Documentation fixes + +## 1.3.2 + +- DateTime.fromMillis will throw if passed a non-number +- Fixes for type checking across JS contexts + +## 1.3.1 + +- Include milliseconds in Duration#toISO +- Avoid deprecation warning from DateTime#inspect in Node 10 + +## 1.3.0 + +- **mildly breaking change** Duration.toFormat now floors its outputs instead of rounding them (see #224) +- Added 'floor' option to Duration.toFormat and deprecated the 'round' option +- Added `Dateime.toBSON` +- Fixed infinite loop when passing invalid or zero-length durations to Interval#splitBy +- Added better error handling to Duration.fromObject() + +## 1.2.1 + +- 222x speed-up in DateTime creation for non-en locales +- Added `DateTime#toMillis` alias for `DateTime#valueOf` +- Fixed types on zone exports + +## 1.2.0 + +- Export Zone classes +- Fix `endOf` and `startOf` for quarters +- Change `toFormat("Z")` to return a number for UTC +- Allow "GTM" as an argument to `setZone` + +## 1.1.0 + +- Support for zone names with more than two components +- Fixed long-term-accurate conversions for months +- Added `weeksInWeekYear` + +## 1.0.0 + +- The big one-oh. No changes from 0.5.8. + +## 0.5.8 + +- Large perf improvements for `DateTime#toFormat()`, when using non-intl numbers + +## 0.5.7 + +- Added AMD build to the NPM package +- Large performance improvements to technical formatting (e.g. `DateTime#toISO`) + +## 0.5.6 + +- Refactor internals +- Added support for fractional seconds in `Duration.fromISO` +- Added browser global to the NPM package + +## 0.5.5 + +- Best-we-can-do fix for `DateTime#toLocaleString()` for fixed-offset zones when showing the zone name in the output +- Fixed `Duration#shiftTo` for unormalized Durations that need a rollup cascade + +## 0.5.4 + +- Fix default locales in Node +- Fix prototype to help with React inspection +- Improve REPL output for Durations in Node + +## 0.5.3 + +- Remove errant ICU runtime dep (again) + +## 0.5.2 + +- Remove comments from minified builds (introduced by 0.5.1) + +## 0.5.1 + +- Fixed minified builds (oops) +- Fix computation of fractional parts of diffs + +## 0.5.0 + +- `isBefore()` returns true for the end of the interval, consistent with being half-open +- `zoneName` now rturns `null` for invalid DateTimes +- Added quarter support +- Adding a month to Jan 31 gives Feb 28/29 + +## 0.4.0 + +- Always round down to the nearest millisecond when parsing + +## 0.3.1 + +- Fixed `toLocaleString` for fixed-offset zones in the absence of Intl +- Added `Info.isValidIANAZone` +- Made malformed zone specifiers result in invalid DateTime instances + +## 0.3.0 + +- Rename DateTime.fromString to DateTime.fromFormat (leaving deprecated DateTime.fromString) +- Rename DateTime.fromStringExplain to DateTime.fromFormatExplain (leaving deprecated DateTime.fromStringExplain) +- Support Etc/GMT IANA zones +- Perf fixes for zones +- Rework build infrastructure + +## 0.2.12 + +- Fix DateTime.fromObject's handling of default zones +- Change `keepCalendarTime` to `keepLocalTime` + +## 0.2.11 + +- Handle no arguments in `DateTime.min` and `DateTime.max` +- Documentation fixes + +## 0.2.10 + +- Fix bug where Durations could sometimes mutate + +## 0.2.9 + +- Fix `DateTime.fromMillis(0)` more thoroughly + +## 0.2.8 + +- Fix sourcemaps + +## 0.2.7 + +- Fix `DateTime.fromMillis(0)` + +## 0.2.6 + +- Fix 'h' and 'hh' `toFormat` tokens for midnight + +## 0.2.5 + +- Better `shiftTo` behavior for durations with floating point components + +## 0.2.4 + +- Fix `toHTTP` to use 24-hour hours +- Tighten up regular expressions +- Various documentation fixes + +## 0.2.3 + +- Fixes for `diff` with multiple units + +## 0.2.2 + +- Fixes for `fromSQL`, `toSQL`, `toSQLTime`, and `toSQLDate` +- Add `includeOffset` option to `toISO` and `toISOTime` + +## 0.2.1 + +- Add `module` field to package.json + +## 0.2.0 + +- Remove polyfills from main builds +- Update compilation toolchain to target builds more exactly +- Fix IE in polyfill build + +## 0.1.0 + +- Add `.fromSQL`, `#toSQL`, `#toSQLTime`, `#toSQLDate` +- Fix AM/PM parsing +- Major perf improvements +- Default to system locale when using macro formats in `#toFormat` +- `.fromISO` accepts standalone times +- See https://github.com/moment/luxon/issues/93 for important news concerning field accessibility + +## 0.0.22 + +- Add 'u' formatting and parsing +- Add 'y', 'yyyyy', and 'yyyyyy' parsing tokens +- Add 'yyyyyy' formatting token +- Better error messages for missing arguments to `DateTime.fromString` + +## 0.0.21 + +- Fix zones for Edge + +## 0.0.20 + +- Fix `fromISO` to accept various levels of subsecond precision + +## 0.0.19 + +- Fixed parsing for ordinals +- Made parsing stricter + +## 0.0.18 + +- Fixed formatting for non-hour aligned fixed-offset zones +- Fixed longterm conversion accuracy option in diffs +- Fixed invalid handling in `Interval#set` + +## 0.0.17 + +- Fixing formatting for fixed-offset zones + +## 0.0.16 + +- Fixes for IE 9 & 10 + +## 0.0.15 + +- Fixing busted release 0.0.14 + +## 0.0.13 + +- toLocaleString() and others default to the system's locale +- support for ISO week durations in `Duration.fromISO` + +## 0.0.12 + +- Improve non-Intl fallbacks for toLocaleString +- Fix `offsetNameShort` and `offsetNameLong` for non-Intl environments +- Added `weekdayShort`, `weekdayLong`, `monthShort`, `monthLong` DateTime getters + +## 0.0.10 + +- Only include build dir in NPM module + +## 0.0.9 + +- Move to Moment Github org + +## 0.0.8 + +- The local zone can now report its IANA name +- Fixed parsing bug for `yy` and `kk` +- Improved test coverage + +## 0.0.7 + +- Added `toLocaleParts` +- Slightly more friendly month/weekday parsing +- Default locale setting + +## 0.0.6 + +- Stricter `toJSDate` +- `fromISO` now supports `year` and `year-month` formats +- More graceful degradation in the absence of platform features + +## 0.0.5 + +Experimental, but now broadly useful. diff --git a/npm_assets/node_modules/luxon/build/amd/luxon.js b/npm_assets/node_modules/luxon/build/amd/luxon.js index 09e42b1d4f..bff5f0dbba 100644 --- a/npm_assets/node_modules/luxon/build/amd/luxon.js +++ b/npm_assets/node_modules/luxon/build/amd/luxon.js @@ -126,7 +126,7 @@ define(['exports'], function (exports) { 'use strict'; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } @@ -281,6 +281,12 @@ define(['exports'], function (exports) { 'use strict'; month: s, day: n }; + var DATE_MED_WITH_WEEKDAY = { + year: n, + month: s, + day: n, + weekday: s + }; var DATE_FULL = { year: n, month: l, @@ -663,20 +669,19 @@ define(['exports'], function (exports) { 'use strict'; return normalized; } function formatOffset(offset, format) { - var hours = Math.trunc(offset / 60), - minutes = Math.abs(offset % 60), - sign = hours >= 0 && !Object.is(hours, -0) ? "+" : "-", - base = "" + sign + Math.abs(hours); + var hours = Math.trunc(Math.abs(offset / 60)), + minutes = Math.trunc(Math.abs(offset % 60)), + sign = offset >= 0 ? "+" : "-"; switch (format) { case "short": - return "" + sign + padStart(Math.abs(hours), 2) + ":" + padStart(minutes, 2); + return "" + sign + padStart(hours, 2) + ":" + padStart(minutes, 2); case "narrow": - return minutes > 0 ? base + ":" + minutes : base; + return "" + sign + hours + (minutes > 0 ? ":" + minutes : ""); case "techie": - return "" + sign + padStart(Math.abs(hours), 2) + padStart(minutes, 2); + return "" + sign + padStart(hours, 2) + padStart(minutes, 2); default: throw new RangeError("Value format " + format + " is out of range for property format"); @@ -829,6 +834,9 @@ define(['exports'], function (exports) { 'use strict'; case stringify(DATE_MED): return "LLL d, yyyy"; + case stringify(DATE_MED_WITH_WEEKDAY): + return "EEE, LLL d, yyyy"; + case stringify(DATE_FULL): return "LLLL d, yyyy"; @@ -2936,7 +2944,7 @@ define(['exports'], function (exports) { 'use strict'; var offsetRegex = /(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/, - isoTimeBaseRegex = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,9}))?)?)?/, + isoTimeBaseRegex = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/, isoTimeRegex = RegExp("" + isoTimeBaseRegex.source + offsetRegex.source + "?"), isoTimeExtensionRegex = RegExp("(?:T" + isoTimeRegex.source + ")?"), isoYmdRegex = /([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/, @@ -2986,7 +2994,7 @@ define(['exports'], function (exports) { 'use strict'; } // ISO duration parsing - var isoDuration = /^-?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,9})(?:[.,](-?\d{1,9}))?S)?)?)$/; + var isoDuration = /^-?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 extractISODuration(match) { var s = match[0], @@ -3174,6 +3182,7 @@ define(['exports'], function (exports) { 'use strict'; }, casualMatrix = Object.assign({ years: { + quarters: 4, months: 12, weeks: 52, days: 365, @@ -3188,6 +3197,7 @@ define(['exports'], function (exports) { 'use strict'; days: 91, hours: 91 * 24, minutes: 91 * 24 * 60, + seconds: 91 * 24 * 60 * 60, milliseconds: 91 * 24 * 60 * 60 * 1000 }, months: { @@ -3203,6 +3213,7 @@ define(['exports'], function (exports) { 'use strict'; daysInMonthAccurate = 146097.0 / 4800, accurateMatrix = Object.assign({ years: { + quarters: 4, months: 12, weeks: daysInYearAccurate / 7, days: daysInYearAccurate, @@ -3756,7 +3767,6 @@ define(['exports'], function (exports) { 'use strict'; accumulated = {}, vals = this.toObject(); var lastUnit; - normalizeValues(this.matrix, vals); for (var _iterator2 = _createForOfIteratorHelperLoose(orderedUnits), _step2; !(_step2 = _iterator2()).done;) { var k = _step2.value; @@ -4025,7 +4035,7 @@ define(['exports'], function (exports) { 'use strict'; * * **Accessors** Use {@link start} and {@link end} to get the start and end. * * **Interrogation** To analyze the Interval, use {@link count}, {@link length}, {@link hasSame}, {@link contains}, {@link isAfter}, or {@link isBefore}. * * **Transformation** To create other Intervals out of this one, use {@link set}, {@link splitAt}, {@link splitBy}, {@link divideEqually}, {@link merge}, {@link xor}, {@link union}, {@link intersection}, or {@link difference}. - * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs} + * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs}. * * **Output** To convert the Interval into other representations, see {@link toString}, {@link toISO}, {@link toISODate}, {@link toISOTime}, {@link toFormat}, and {@link toDuration}. */ @@ -4146,20 +4156,35 @@ define(['exports'], function (exports) { 'use strict'; e = _split[1]; if (s && e) { - var start = DateTime.fromISO(s, opts), - end = DateTime.fromISO(e, opts); + var start, startIsValid; + + try { + start = DateTime.fromISO(s, opts); + startIsValid = start.isValid; + } catch (e) { + startIsValid = false; + } + + var end, endIsValid; - if (start.isValid && end.isValid) { + try { + end = DateTime.fromISO(e, opts); + endIsValid = end.isValid; + } catch (e) { + endIsValid = false; + } + + if (startIsValid && endIsValid) { return Interval.fromDateTimes(start, end); } - if (start.isValid) { + if (startIsValid) { var dur = Duration.fromISO(e, opts); if (dur.isValid) { return Interval.after(start, dur); } - } else if (end.isValid) { + } else if (endIsValid) { var _dur = Duration.fromISO(s, opts); if (_dur.isValid) { @@ -4227,7 +4252,7 @@ define(['exports'], function (exports) { 'use strict'; ; _proto.hasSame = function hasSame(unit) { - return this.isValid ? this.e.minus(1).hasSame(this.s, unit) : false; + return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false; } /** * Return whether this Interval has the same start and end DateTimes. @@ -4815,7 +4840,7 @@ define(['exports'], function (exports) { 'use strict'; /** * Return an array of standalone week names. * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat - * @param {string} [length='long'] - the length of the month representation, such as "narrow", "short", "long". + * @param {string} [length='long'] - the length of the weekday representation, such as "narrow", "short", "long". * @param {Object} opts - options * @param {string} [opts.locale] - the locale code * @param {string} [opts.numberingSystem=null] - the numbering system @@ -4845,7 +4870,7 @@ define(['exports'], function (exports) { 'use strict'; * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that * changes the string. * See {@link weekdays} - * @param {string} [length='long'] - the length of the month representation, such as "narrow", "short", "long". + * @param {string} [length='long'] - the length of the weekday representation, such as "narrow", "short", "long". * @param {Object} opts - options * @param {string} [opts.locale=null] - the locale code * @param {string} [opts.numberingSystem=null] - the numbering system @@ -5139,13 +5164,20 @@ define(['exports'], function (exports) { 'use strict'; }; } + var NBSP = String.fromCharCode(160); + var spaceOrNBSP = "( |" + NBSP + ")"; + var spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, "g"); + function fixListRegex(s) { // make dots optional and also make them literal - return s.replace(/\./, "\\.?"); + // make space and non breakable space characters interchangeable + return s.replace(/\./g, "\\.?").replace(spaceOrNBSPRegExp, spaceOrNBSP); } function stripInsensitivities(s) { - return s.replace(/\./, "").toLowerCase(); + return s.replace(/\./g, "") // ignore dots that were made optional + .replace(spaceOrNBSPRegExp, " ") // interchange space and nbsp + .toLowerCase(); } function oneOf(strings, startIndex) { @@ -5910,24 +5942,20 @@ define(['exports'], function (exports) { 'use strict'; function adjustTime(inst, dur) { - var _dur; - - var keys = Object.keys(dur.values); - - if (keys.indexOf("milliseconds") === -1) { - keys.push("milliseconds"); - } - - dur = (_dur = dur).shiftTo.apply(_dur, keys); var oPre = inst.o, - year = inst.c.year + dur.years, - month = inst.c.month + dur.months + dur.quarters * 3, + year = inst.c.year + Math.trunc(dur.years), + month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3, c = Object.assign({}, inst.c, { year: year, month: month, - day: Math.min(inst.c.day, daysInMonth(year, month)) + dur.days + dur.weeks * 7 + day: Math.min(inst.c.day, daysInMonth(year, month)) + Math.trunc(dur.days) + Math.trunc(dur.weeks) * 7 }), millisToAdd = Duration.fromObject({ + years: dur.years - Math.trunc(dur.years), + quarters: dur.quarters - Math.trunc(dur.quarters), + months: dur.months - Math.trunc(dur.months), + weeks: dur.weeks - Math.trunc(dur.weeks), + days: dur.days - Math.trunc(dur.days), hours: dur.hours, minutes: dur.minutes, seconds: dur.seconds, @@ -8034,6 +8062,16 @@ define(['exports'], function (exports) { 'use strict'; get: function get() { return DATE_MED; } + /** + * {@link toLocaleString} format like 'Fri, Oct 14, 1983' + * @type {Object} + */ + + }, { + key: "DATE_MED_WITH_WEEKDAY", + get: function get() { + return DATE_MED_WITH_WEEKDAY; + } /** * {@link toLocaleString} format like 'October 14, 1983' * @type {Object} diff --git a/npm_assets/node_modules/luxon/build/amd/luxon.js.map b/npm_assets/node_modules/luxon/build/amd/luxon.js.map index 8e41b7ba25..88f9ce43f3 100644 --- a/npm_assets/node_modules/luxon/build/amd/luxon.js.map +++ b/npm_assets/node_modules/luxon/build/amd/luxon.js.map @@ -1 +1 @@ -{"version":3,"file":"luxon.js","sources":["../../src/errors.js","../../src/impl/formats.js","../../src/impl/util.js","../../src/impl/english.js","../../src/impl/formatter.js","../../src/impl/invalid.js","../../src/zone.js","../../src/zones/localZone.js","../../src/zones/IANAZone.js","../../src/zones/fixedOffsetZone.js","../../src/zones/invalidZone.js","../../src/impl/zoneUtil.js","../../src/settings.js","../../src/impl/locale.js","../../src/impl/regexParser.js","../../src/duration.js","../../src/interval.js","../../src/info.js","../../src/impl/diff.js","../../src/impl/digits.js","../../src/impl/tokenParser.js","../../src/impl/conversions.js","../../src/datetime.js"],"sourcesContent":["// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nclass LuxonError extends Error {}\n\n/**\n * @private\n */\nexport class InvalidDateTimeError extends LuxonError {\n constructor(reason) {\n super(`Invalid DateTime: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidIntervalError extends LuxonError {\n constructor(reason) {\n super(`Invalid Interval: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidDurationError extends LuxonError {\n constructor(reason) {\n super(`Invalid Duration: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class ConflictingSpecificationError extends LuxonError {}\n\n/**\n * @private\n */\nexport class InvalidUnitError extends LuxonError {\n constructor(unit) {\n super(`Invalid unit ${unit}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidArgumentError extends LuxonError {}\n\n/**\n * @private\n */\nexport class ZoneIsAbstractError extends LuxonError {\n constructor() {\n super(\"Zone is an abstract class\");\n }\n}\n","/**\n * @private\n */\n\nconst n = \"numeric\",\n s = \"short\",\n l = \"long\";\n\nexport const DATE_SHORT = {\n year: n,\n month: n,\n day: n\n};\n\nexport const DATE_MED = {\n year: n,\n month: s,\n day: n\n};\n\nexport const DATE_FULL = {\n year: n,\n month: l,\n day: n\n};\n\nexport const DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l\n};\n\nexport const TIME_SIMPLE = {\n hour: n,\n minute: n\n};\n\nexport const TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n\n};\n\nexport const TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n\nexport const TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23', always 24-hour.\n */\nexport const TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 EDT', always 24-hour.\n */\nexport const TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: s\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 Eastern Daylight Time', always 24-hour.\n */\nexport const TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: l\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s\n};\n\nexport const DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l\n};\n\nexport const DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n","/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\nimport { InvalidArgumentError } from \"../errors.js\";\n\n/**\n * @private\n */\n\n// TYPES\n\nexport function isUndefined(o) {\n return typeof o === \"undefined\";\n}\n\nexport function isNumber(o) {\n return typeof o === \"number\";\n}\n\nexport function isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\n\nexport function isString(o) {\n return typeof o === \"string\";\n}\n\nexport function isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nexport function hasIntl() {\n try {\n return typeof Intl !== \"undefined\" && Intl.DateTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\nexport function hasFormatToParts() {\n return !isUndefined(Intl.DateTimeFormat.prototype.formatToParts);\n}\n\nexport function hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nexport function maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\n\nexport function bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\n\nexport function pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\n\nexport function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n// NUMBERS AND STRINGS\n\nexport function integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nexport function floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\n\nexport function padStart(input, n = 2) {\n if (input.toString().length < n) {\n return (\"0\".repeat(n) + input).slice(-n);\n } else {\n return input.toString();\n }\n}\n\nexport function parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\n\nexport function parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\n\nexport function roundTo(number, digits, towardZero = false) {\n const factor = 10 ** digits,\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nexport function isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// covert a calendar object to a local timestamp (epoch, but with the offset baked in)\nexport function objToLocalTS(obj) {\n let d = Date.UTC(\n obj.year,\n obj.month - 1,\n obj.day,\n obj.hour,\n obj.minute,\n obj.second,\n obj.millisecond\n );\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n return +d;\n}\n\nexport function weeksInWeekYear(weekYear) {\n const p1 =\n (weekYear +\n Math.floor(weekYear / 4) -\n Math.floor(weekYear / 100) +\n Math.floor(weekYear / 400)) %\n 7,\n last = weekYear - 1,\n p2 = (last + Math.floor(last / 4) - Math.floor(last / 100) + Math.floor(last / 400)) % 7;\n return p1 === 4 || p2 === 3 ? 53 : 52;\n}\n\nexport function untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > 60 ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nexport function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hour12: false,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\"\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n const modified = Object.assign({ timeZoneName: offsetFormat }, intlOpts),\n intl = hasIntl();\n\n if (intl && hasFormatToParts()) {\n const parsed = new Intl.DateTimeFormat(locale, modified)\n .formatToParts(date)\n .find(m => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n } else if (intl) {\n // this probably doesn't work for all locales\n const without = new Intl.DateTimeFormat(locale, intlOpts).format(date),\n included = new Intl.DateTimeFormat(locale, modified).format(date),\n diffed = included.substring(without.length),\n trimmed = diffed.replace(/^[, \\u200e]+/, \"\");\n return trimmed;\n } else {\n return null;\n }\n}\n\n// signedOffset('-5', '30') -> -330\nexport function signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nexport function asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue))\n throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\n\nexport function normalizeObject(obj, normalizer, nonUnitKeys) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n if (nonUnitKeys.indexOf(u) >= 0) continue;\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\nexport function formatOffset(offset, format) {\n const hours = Math.trunc(offset / 60),\n minutes = Math.abs(offset % 60),\n sign = hours >= 0 && !Object.is(hours, -0) ? \"+\" : \"-\",\n base = `${sign}${Math.abs(hours)}`;\n\n switch (format) {\n case \"short\":\n return `${sign}${padStart(Math.abs(hours), 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return minutes > 0 ? `${base}:${minutes}` : base;\n case \"techie\":\n return `${sign}${padStart(Math.abs(hours), 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\n\nexport function timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n\nexport const ianaRegex = /[A-Za-z_+-]{1,256}(:?\\/[A-Za-z_+-]{1,256}(\\/[A-Za-z_+-]{1,256})?)?/;\n","import * as Formats from \"./formats.js\";\nimport { pick } from \"./util.js\";\n\nfunction stringify(obj) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n}\n\n/**\n * @private\n */\n\nexport const monthsLong = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\n\nexport const monthsShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n];\n\nexport const monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nexport function months(length) {\n switch (length) {\n case \"narrow\":\n return monthsNarrow;\n case \"short\":\n return monthsShort;\n case \"long\":\n return monthsLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\n\nexport const weekdaysLong = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\"\n];\n\nexport const weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nexport const weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nexport function weekdays(length) {\n switch (length) {\n case \"narrow\":\n return weekdaysNarrow;\n case \"short\":\n return weekdaysShort;\n case \"long\":\n return weekdaysLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\n\nexport const meridiems = [\"AM\", \"PM\"];\n\nexport const erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nexport const erasShort = [\"BC\", \"AD\"];\n\nexport const erasNarrow = [\"B\", \"A\"];\n\nexport function eras(length) {\n switch (length) {\n case \"narrow\":\n return erasNarrow;\n case \"short\":\n return erasShort;\n case \"long\":\n return erasLong;\n default:\n return null;\n }\n}\n\nexport function meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nexport function weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\n\nexport function monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\n\nexport function eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nexport function formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"]\n };\n\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n default: // fall through\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow\n ? singular\n ? lilUnits[1]\n : lilUnits[2] || lilUnits[1]\n : singular\n ? units[unit][0]\n : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nexport function formatString(knownFormat) {\n // these all have the offsets removed because we don't have access to them\n // without all the intl stuff this is backfilling\n const filtered = pick(knownFormat, [\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n \"hour12\"\n ]),\n key = stringify(filtered),\n dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n switch (key) {\n case stringify(Formats.DATE_SHORT):\n return \"M/d/yyyy\";\n case stringify(Formats.DATE_MED):\n return \"LLL d, yyyy\";\n case stringify(Formats.DATE_FULL):\n return \"LLLL d, yyyy\";\n case stringify(Formats.DATE_HUGE):\n return \"EEEE, LLLL d, yyyy\";\n case stringify(Formats.TIME_SIMPLE):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_SECONDS):\n return \"h:mm:ss a\";\n case stringify(Formats.TIME_WITH_SHORT_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_LONG_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_24_SIMPLE):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_SECONDS):\n return \"HH:mm:ss\";\n case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_LONG_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.DATETIME_SHORT):\n return \"M/d/yyyy, h:mm a\";\n case stringify(Formats.DATETIME_MED):\n return \"LLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL):\n return \"LLLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_HUGE):\n return dateTimeHuge;\n case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):\n return \"M/d/yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_SECONDS):\n return \"LLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):\n return \"EEE, d LLL yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL_WITH_SECONDS):\n return \"LLLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):\n return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n default:\n return dateTimeHuge;\n }\n}\n","import * as English from \"./english.js\";\nimport * as Formats from \"./formats.js\";\nimport { hasFormatToParts, padStart } from \"./util.js\";\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\n\nconst macroTokenToFormatOpts = {\n D: Formats.DATE_SHORT,\n DD: Formats.DATE_MED,\n DDD: Formats.DATE_FULL,\n DDDD: Formats.DATE_HUGE,\n t: Formats.TIME_SIMPLE,\n tt: Formats.TIME_WITH_SECONDS,\n ttt: Formats.TIME_WITH_SHORT_OFFSET,\n tttt: Formats.TIME_WITH_LONG_OFFSET,\n T: Formats.TIME_24_SIMPLE,\n TT: Formats.TIME_24_WITH_SECONDS,\n TTT: Formats.TIME_24_WITH_SHORT_OFFSET,\n TTTT: Formats.TIME_24_WITH_LONG_OFFSET,\n f: Formats.DATETIME_SHORT,\n ff: Formats.DATETIME_MED,\n fff: Formats.DATETIME_FULL,\n ffff: Formats.DATETIME_HUGE,\n F: Formats.DATETIME_SHORT_WITH_SECONDS,\n FF: Formats.DATETIME_MED_WITH_SECONDS,\n FFF: Formats.DATETIME_FULL_WITH_SECONDS,\n FFFF: Formats.DATETIME_HUGE_WITH_SECONDS\n};\n\n/**\n * @private\n */\n\nexport default class Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n\n static parseFormat(fmt) {\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({ literal: false, val: currentFull });\n }\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n\n return splits;\n }\n\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTime(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTimeParts(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.formatToParts();\n }\n\n resolvedOptions(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.resolvedOptions();\n }\n\n num(n, p = 0) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n const opts = Object.assign({}, this.opts);\n\n if (p > 0) {\n opts.padTo = p;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n }\n\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter =\n this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\" && hasFormatToParts(),\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = opts => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () =>\n knownEnglish\n ? English.meridiemForDateTime(dt)\n : string({ hour: \"numeric\", hour12: true }, \"dayperiod\"),\n month = (length, standalone) =>\n knownEnglish\n ? English.monthForDateTime(dt, length)\n : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n weekday = (length, standalone) =>\n knownEnglish\n ? English.weekdayForDateTime(dt, length)\n : string(\n standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n \"weekday\"\n ),\n maybeMacro = token => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = length =>\n knownEnglish ? English.eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n tokenToString = token => {\n // Where possible: http://cldr.unicode.org/translation/date-time#TOC-Stand-Alone-vs.-Format-Styles\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n case \"ZZ\":\n // like +06:00\n return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n case \"ZZZ\":\n // like +0600\n return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter\n ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter\n ? string({ month: \"2-digit\" }, \"month\")\n : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter\n ? string({ year: \"2-digit\" }, \"year\")\n : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n\n formatDurationFromString(dur, fmt) {\n const tokenToField = token => {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = lildur => token => {\n const mapped = tokenToField(token);\n if (mapped) {\n return this.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(\n (found, { literal, val }) => (literal ? found : found.concat(val)),\n []\n ),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter(t => t));\n return stringifyTokens(tokens, tokenToString(collapsed));\n }\n}\n","export default class Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n","/* eslint no-unused-vars: \"off\" */\nimport { ZoneIsAbstractError } from \"./errors.js\";\n\n/**\n * @interface\n */\nexport default class Zone {\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get type() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n get name() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n get universal() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */\n get isValid() {\n throw new ZoneIsAbstractError();\n }\n}\n","import { formatOffset, parseZoneInfo, hasIntl } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * Represents the local zone for this Javascript environment.\n * @implements {Zone}\n */\nexport default class LocalZone extends Zone {\n /**\n * Get a singleton instance of the local zone\n * @return {LocalZone}\n */\n static get instance() {\n if (singleton === null) {\n singleton = new LocalZone();\n }\n return singleton;\n }\n\n /** @override **/\n get type() {\n return \"local\";\n }\n\n /** @override **/\n get name() {\n if (hasIntl()) {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n } else return \"local\";\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"local\";\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import { formatOffset, parseZoneInfo, isUndefined, ianaRegex, objToLocalTS } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nconst matchingRegex = RegExp(`^${ianaRegex.source}$`);\n\nlet dtfCache = {};\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n });\n }\n return dtfCache[zone];\n}\n\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n};\n\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed;\n return [fYear, fMonth, fDay, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n const formatted = dtf.formatToParts(date),\n filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const { type, value } = formatted[i],\n pos = typeToPos[type];\n\n if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\n\nlet ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nexport default class IANAZone extends Zone {\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n static create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n return ianaZoneCache[name];\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Fantasia/Castle\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return !!(s && s.match(matchingRegex));\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n // Etc/GMT+8 -> -480\n /** @ignore */\n static parseGMTOffset(specifier) {\n if (specifier) {\n const match = specifier.match(/^Etc\\/GMT([+-]\\d{1,2})$/i);\n if (match) {\n return -60 * parseInt(match[1]);\n }\n }\n return null;\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /** @override **/\n get type() {\n return \"iana\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n const date = new Date(ts),\n dtf = makeDTF(this.name),\n [year, month, day, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date),\n // work around https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /** @override **/\n get isValid() {\n return this.valid;\n }\n}\n","import { formatOffset, signedOffset } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nexport default class FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /** @override **/\n get type() {\n return \"fixed\";\n }\n\n /** @override **/\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n /** @override **/\n offsetName() {\n return this.name;\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /** @override **/\n get universal() {\n return true;\n }\n\n /** @override **/\n offset() {\n return this.fixed;\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import Zone from \"../zone.js\";\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nexport default class InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n","/**\n * @private\n */\n\nimport Zone from \"../zone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport InvalidZone from \"../zones/invalidZone.js\";\n\nimport { isUndefined, isString, isNumber } from \"./util.js\";\n\nexport function normalizeZone(input, defaultZone) {\n let offset;\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"local\") return defaultZone;\n else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n else if ((offset = IANAZone.parseGMTOffset(input)) != null) {\n // handle Etc/GMT-4, which V8 chokes on\n return FixedOffsetZone.instance(offset);\n } else if (IANAZone.isValidSpecifier(lowered)) return IANAZone.create(input);\n else return FixedOffsetZone.parseSpecifier(lowered) || new InvalidZone(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && input.offset && typeof input.offset === \"number\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n","import LocalZone from \"./zones/localZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport Locale from \"./impl/locale.js\";\n\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nlet now = () => Date.now(),\n defaultZone = null, // not setting this directly to LocalZone.instance bc loading order issues\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n throwOnInvalid = false;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nexport default class Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Get the default time zone to create DateTimes in.\n * @type {string}\n */\n static get defaultZoneName() {\n return Settings.defaultZone.name;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * @type {string}\n */\n static set defaultZoneName(z) {\n if (!z) {\n defaultZone = null;\n } else {\n defaultZone = normalizeZone(z);\n }\n }\n\n /**\n * Get the default time zone object to create DateTimes in. Does not affect existing instances.\n * @type {Zone}\n */\n static get defaultZone() {\n return defaultZone || LocalZone.instance;\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n }\n}\n","import { hasFormatToParts, hasIntl, padStart, roundTo, hasRelative } from \"./util.js\";\nimport * as English from \"./english.js\";\nimport Settings from \"../settings.js\";\nimport DateTime from \"../datetime.js\";\nimport Formatter from \"./formatter.js\";\n\nlet intlDTCache = {};\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlNumCache = {};\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\n\nlet intlRelCache = {};\nfunction getCachedRTF(locString, opts = {}) {\n const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else if (hasIntl()) {\n const computedSys = new Intl.DateTimeFormat().resolvedOptions().locale;\n // node sometimes defaults to \"und\". Override that because that is dumb\n sysLocaleCache = !computedSys || computedSys === \"und\" ? \"en-US\" : computedSys;\n return sysLocaleCache;\n } else {\n sysLocaleCache = \"en-US\";\n return sysLocaleCache;\n }\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n const smaller = localeStr.substring(0, uIndex);\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n } catch (e) {\n options = getCachedDTF(smaller).resolvedOptions();\n }\n\n const { numberingSystem, calendar } = options;\n // return the smaller one so that we can append the calendar and numbering overrides to it\n return [smaller, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (hasIntl()) {\n if (outputCalendar || numberingSystem) {\n localeStr += \"-u\";\n\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n } else {\n return [];\n }\n}\n\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2016, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction listStuff(loc, length, defaultOK, englishFn, intlFn) {\n const mode = loc.listingMode(defaultOK);\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return (\n loc.numberingSystem === \"latn\" ||\n !loc.locale ||\n loc.locale.startsWith(\"en\") ||\n (hasIntl() && new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\")\n );\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n if (!forceSimple && hasIntl()) {\n const intlOpts = { useGrouping: false };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n this.hasIntl = hasIntl();\n\n let z;\n if (dt.zone.universal && this.hasIntl) {\n // Chromium doesn't support fixed-offset zones like Etc/GMT+8 in its formatter,\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=364374.\n // So we have to make do. Two cases:\n // 1. The format options tell us to show the zone. We can't do that, so the best\n // we can do is format the date in UTC.\n // 2. The format options don't tell us to show the zone. Then we can adjust them\n // the time and tell the formatter to show it to us in UTC, so that the time is right\n // and the bad zone doesn't show up.\n // We can clean all this up when Chrome fixes this.\n z = \"UTC\";\n if (opts.timeZoneName) {\n this.dt = dt;\n } else {\n this.dt = dt.offset === 0 ? dt : DateTime.fromMillis(dt.ts + dt.offset * 60 * 1000);\n }\n } else if (dt.zone.type === \"local\") {\n this.dt = dt;\n } else {\n this.dt = dt;\n z = dt.zone.name;\n }\n\n if (this.hasIntl) {\n const intlOpts = Object.assign({}, this.opts);\n if (z) {\n intlOpts.timeZone = z;\n }\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n }\n\n format() {\n if (this.hasIntl) {\n return this.dtf.format(this.dt.toJSDate());\n } else {\n const tokenFormat = English.formatString(this.opts),\n loc = Locale.create(\"en-US\");\n return Formatter.create(loc).formatDateTimeFromString(this.dt, tokenFormat);\n }\n }\n\n formatToParts() {\n if (this.hasIntl && hasFormatToParts()) {\n return this.dtf.formatToParts(this.dt.toJSDate());\n } else {\n // This is kind of a cop out. We actually could do this for English. However, we couldn't do it for intl strings\n // and IMO it's too weird to have an uncanny valley like that\n return [];\n }\n }\n\n resolvedOptions() {\n if (this.hasIntl) {\n return this.dtf.resolvedOptions();\n } else {\n return {\n locale: \"en-US\",\n numberingSystem: \"latn\",\n outputCalendar: \"gregory\"\n };\n }\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = Object.assign({ style: \"long\" }, opts);\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return English.formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\n\n/**\n * @private\n */\n\nexport default class Locale {\n static fromOpts(opts) {\n return Locale.create(opts.locale, opts.numberingSystem, opts.outputCalendar, opts.defaultToEN);\n }\n\n static create(locale, numberingSystem, outputCalendar, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale,\n // the system locale is useful for human readable strings but annoying for parsing/formatting known formats\n localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale()),\n numberingSystemR = numberingSystem || Settings.defaultNumberingSystem,\n outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n return new Locale(localeR, numberingSystemR, outputCalendarR, specifiedLocale);\n }\n\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n }\n\n static fromObject({ locale, numberingSystem, outputCalendar } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar);\n }\n\n constructor(locale, numbering, outputCalendar, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n this.weekdaysCache = { format: {}, standalone: {} };\n this.monthsCache = { format: {}, standalone: {} };\n this.meridiemCache = null;\n this.eraCache = {};\n\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n\n listingMode(defaultOK = true) {\n const intl = hasIntl(),\n hasFTP = intl && hasFormatToParts(),\n isActuallyEn = this.isEnglish(),\n hasNoWeirdness =\n (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n\n if (!hasFTP && !(isActuallyEn && hasNoWeirdness) && !defaultOK) {\n return \"error\";\n } else if (!hasFTP || (isActuallyEn && hasNoWeirdness)) {\n return \"en\";\n } else {\n return \"intl\";\n }\n }\n\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(\n alts.locale || this.specifiedLocale,\n alts.numberingSystem || this.numberingSystem,\n alts.outputCalendar || this.outputCalendar,\n alts.defaultToEN || false\n );\n }\n }\n\n redefaultToEN(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: true }));\n }\n\n redefaultToSystem(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: false }));\n }\n\n months(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.months, () => {\n const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n this.monthsCache[formatStr][length] = mapMonths(dt => this.extract(dt, intl, \"month\"));\n }\n return this.monthsCache[formatStr][length];\n });\n }\n\n weekdays(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.weekdays, () => {\n const intl = format\n ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n : { weekday: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays(dt =>\n this.extract(dt, intl, \"weekday\")\n );\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n\n meridiems(defaultOK = true) {\n return listStuff(\n this,\n undefined,\n defaultOK,\n () => English.meridiems,\n () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = { hour: \"numeric\", hour12: true };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n dt => this.extract(dt, intl, \"dayperiod\")\n );\n }\n\n return this.meridiemCache;\n }\n );\n }\n\n eras(length, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.eras, () => {\n const intl = { era: length };\n\n // This is utter bullshit. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map(dt =>\n this.extract(dt, intl, \"era\")\n );\n }\n\n return this.eraCache[length];\n });\n }\n\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find(m => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n\n isEnglish() {\n return (\n this.locale === \"en\" ||\n this.locale.toLowerCase() === \"en-us\" ||\n (hasIntl() && new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\"))\n );\n }\n\n equals(other) {\n return (\n this.locale === other.locale &&\n this.numberingSystem === other.numberingSystem &&\n this.outputCalendar === other.outputCalendar\n );\n }\n}\n","import {\n untruncateYear,\n signedOffset,\n parseInteger,\n parseMillis,\n ianaRegex,\n isUndefined\n} from \"./util.js\";\nimport * as English from \"./english.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n return m =>\n extractors\n .reduce(\n ([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [Object.assign(mergedVals, val), mergedZone || zone, next];\n },\n [{}, null, 1]\n )\n .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\n\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/,\n isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,9}))?)?)?/,\n isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${offsetRegex.source}?`),\n isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`),\n isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/,\n isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/,\n isoOrdinalRegex = /(\\d{4})-?(\\d{3})/,\n extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\"),\n extractISOOrdinalData = simpleParse(\"year\", \"ordinal\"),\n sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/, // dumbed-down version of the ISO one\n sqlTimeRegex = RegExp(\n `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n ),\n sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1)\n };\n\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n const item = {\n hour: int(match, cursor, 0),\n minute: int(match, cursor + 1, 0),\n second: int(match, cursor + 2, 0),\n millisecond: parseMillis(match[cursor + 3])\n };\n\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO duration parsing\n\nconst isoDuration = /^-?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,9})(?:[.,](-?\\d{1,9}))?S)?)?)$/;\n\nfunction extractISODuration(match) {\n const [\n s,\n yearStr,\n monthStr,\n weekStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr,\n millisecondsStr\n ] = match;\n\n const hasNegativePrefix = s[0] === \"-\";\n\n const maybeNegate = num => (num && hasNegativePrefix ? -num : num);\n\n return [\n {\n years: maybeNegate(parseInteger(yearStr)),\n months: maybeNegate(parseInteger(monthStr)),\n weeks: maybeNegate(parseInteger(weekStr)),\n days: maybeNegate(parseInteger(dayStr)),\n hours: maybeNegate(parseInteger(hourStr)),\n minutes: maybeNegate(parseInteger(minuteStr)),\n seconds: maybeNegate(parseInteger(secondStr)),\n milliseconds: maybeNegate(parseMillis(millisecondsStr))\n }\n ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\n\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: English.monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr)\n };\n\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday =\n weekdayStr.length > 3\n ? English.weekdaysLong.indexOf(weekdayStr) + 1\n : English.weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 = /^(?:(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)))$/;\n\nfunction extractRFC2822(match) {\n const [\n ,\n weekdayStr,\n dayStr,\n monthStr,\n yearStr,\n hourStr,\n minuteStr,\n secondStr,\n obsOffset,\n milOffset,\n offHourStr,\n offMinuteStr\n ] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, \" \")\n .replace(/(\\s\\s+)/g, \" \")\n .trim();\n}\n\n// http date\n\nconst rfc1123 = /^(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$/,\n rfc850 = /^(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$/,\n ascii = /^(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})$/;\n\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n extractISOWeekData,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOOrdinalDataAndTime = combineExtractors(extractISOOrdinalData, extractISOTime);\nconst extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset);\n\n/**\n * @private\n */\n\nexport function parseISODate(s) {\n return parse(\n s,\n [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDataAndTime],\n [isoTimeCombinedRegex, extractISOTimeAndOffset]\n );\n}\n\nexport function parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nexport function parseHTTPDate(s) {\n return parse(\n s,\n [rfc1123, extractRFC1123Or850],\n [rfc850, extractRFC1123Or850],\n [ascii, extractASCII]\n );\n}\n\nexport function parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOYmdTimeOffsetAndIANAZone = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\nexport function parseSQL(s) {\n return parse(\n s,\n [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeOffsetAndIANAZone],\n [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n );\n}\n","import { InvalidArgumentError, InvalidDurationError, InvalidUnitError } from \"./errors.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Locale from \"./impl/locale.js\";\nimport { parseISODuration } from \"./impl/regexParser.js\";\nimport {\n asNumber,\n hasOwnProperty,\n isNumber,\n isUndefined,\n normalizeObject,\n roundTo\n} from \"./impl/util.js\";\nimport Settings from \"./settings.js\";\n\nconst INVALID = \"Invalid Duration\";\n\n// unit conversion constants\nconst lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000\n },\n hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n minutes: { seconds: 60, milliseconds: 60 * 1000 },\n seconds: { milliseconds: 1000 }\n },\n casualMatrix = Object.assign(\n {\n years: {\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n ),\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = Object.assign(\n {\n years: {\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: (daysInYearAccurate * 24) / 4,\n minutes: (daysInYearAccurate * 24 * 60) / 4,\n seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n );\n\n// units ordered by size\nconst orderedUnits = [\n \"years\",\n \"quarters\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n];\n\nconst reverseUnits = orderedUnits.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : Object.assign({}, dur.values, alts.values || {}),\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy\n };\n return new Duration(conf);\n}\n\nfunction antiTrunc(n) {\n return n < 0 ? Math.floor(n) : Math.ceil(n);\n}\n\n// NB: mutates parameters\nfunction convert(matrix, fromMap, fromUnit, toMap, toUnit) {\n const conv = matrix[toUnit][fromUnit],\n raw = fromMap[fromUnit] / conv,\n sameSign = Math.sign(raw) === Math.sign(toMap[toUnit]),\n // ok, so this is wild, but see the matrix in the tests\n added =\n !sameSign && toMap[toUnit] !== 0 && Math.abs(raw) <= 1 ? antiTrunc(raw) : Math.trunc(raw);\n toMap[toUnit] += added;\n fromMap[fromUnit] -= added * conv;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n reverseUnits.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n convert(matrix, vals, previous, vals, current);\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime.plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration.years}, {@link Duration.months}, {@link Duration.weeks}, {@link Duration.days}, {@link Duration.hours}, {@link Duration.minutes}, {@link Duration.seconds}, {@link Duration.milliseconds} accessors.\n * * **Configuration** See {@link Duration.locale} and {@link Duration.numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration.plus}, {@link Duration.minus}, {@link Duration.normalize}, {@link Duration.set}, {@link Duration.reconfigure}, {@link Duration.shiftTo}, and {@link Duration.negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration.as}, {@link Duration.toISO}, {@link Duration.toFormat}, and {@link Duration.toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nexport default class Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = accurate ? accurateMatrix : casualMatrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject(Object.assign({ milliseconds: count }, opts));\n }\n\n /**\n * Create a Duration from a Javascript object with keys like 'years' and 'hours.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {string} [obj.locale='en-US'] - the locale to use\n * @param {string} obj.numberingSystem - the numbering system to use\n * @param {string} [obj.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromObject(obj) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\n `Duration.fromObject: argument expected to be an object, got ${\n obj === null ? \"null\" : typeof obj\n }`\n );\n }\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit, [\n \"locale\",\n \"numberingSystem\",\n \"conversionAccuracy\",\n \"zone\" // a bit of debt; it's super inconvenient internally not to be able to blindly pass this\n ]),\n loc: Locale.fromObject(obj),\n conversionAccuracy: obj.conversionAccuracy\n });\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n const obj = Object.assign(parsed, opts);\n return Duration.fromObject(obj);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({ invalid });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\"\n }[unit ? unit.toLowerCase() : unit];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return (o && o.isLuxonDuration) || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * The duration will be converted to the set of units in the format string using {@link Duration.shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = Object.assign({}, opts, {\n floor: opts.round !== false && opts.floor !== false\n });\n return this.isValid\n ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a Javascript object with this Duration's values.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.values);\n\n if (opts.includeConfig) {\n base.conversionAccuracy = this.conversionAccuracy;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n valueOf() {\n return this.as(\"milliseconds\");\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration),\n result = {};\n\n for (const k of orderedUnits) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone(this, { values: result }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit((x, u) => u === \"hour\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone(this, { values: result }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).years //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).months //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).days //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const mixed = Object.assign(this.values, normalizeObject(values, Duration.normalizeUnit, []));\n return clone(this, { values: mixed });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({ locale, numberingSystem, conversionAccuracy } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem }),\n opts = { loc };\n\n if (conversionAccuracy) {\n opts.conversionAccuracy = conversionAccuracy;\n }\n\n return clone(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map(u => Duration.normalizeUnit(u));\n\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n\n normalizeValues(this.matrix, vals);\n\n for (const k of orderedUnits) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = own - i; // we'd like to absorb these fractions in another unit\n\n // plus anything further down the chain that should be rolled up in to this\n for (const down in vals) {\n if (orderedUnits.indexOf(down) > orderedUnits.indexOf(k)) {\n convert(this.matrix, vals, down, built, k);\n }\n }\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] +=\n key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n return clone(this, { values: built }, true).normalize();\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = -this.values[k];\n }\n return clone(this, { values: negated }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n for (const u of orderedUnits) {\n if (this.values[u] !== other.values[u]) {\n return false;\n }\n }\n return true;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDuration(durationish) {\n if (isNumber(durationish)) {\n return Duration.fromMillis(durationish);\n } else if (Duration.isDuration(durationish)) {\n return durationish;\n } else if (typeof durationish === \"object\") {\n return Duration.fromObject(durationish);\n } else {\n throw new InvalidArgumentError(\n `Unknown duration argument ${durationish} of type ${typeof durationish}`\n );\n }\n}\n","import DateTime, { friendlyDateTime } from \"./datetime.js\";\nimport Duration, { friendlyDuration } from \"./duration.js\";\nimport Settings from \"./settings.js\";\nimport { InvalidArgumentError, InvalidIntervalError } from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\n \"end before start\",\n `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n );\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link fromDateTimes}, {@link after}, {@link before}, or {@link fromISO}.\n * * **Accessors** Use {@link start} and {@link end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link count}, {@link length}, {@link hasSame}, {@link contains}, {@link isAfter}, or {@link isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link set}, {@link splitAt}, {@link splitBy}, {@link divideEqually}, {@link merge}, {@link xor}, {@link union}, {@link intersection}, or {@link difference}.\n * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs}\n * * **Output** To convert the Interval into other representations, see {@link toString}, {@link toISO}, {@link toISODate}, {@link toISOTime}, {@link toFormat}, and {@link toDuration}.\n */\nexport default class Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({ invalid });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n\n const validateError = validateStartEnd(builtStart, builtEnd);\n\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `<start>/<end>`, `<start>/<duration>`, and `<duration>/<end>` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime.fromISO} and optionally {@link Duration.fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n const start = DateTime.fromISO(s, opts),\n end = DateTime.fromISO(e, opts);\n\n if (start.isValid && end.isValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (start.isValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (end.isValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return (o && o.isLuxonInterval) || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @return {number}\n */\n count(unit = \"milliseconds\") {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit),\n end = this.end.startOf(unit);\n return Math.floor(end.diff(start, unit).get(unit)) + 1;\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({ start, end } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...[DateTime]} dateTimes - the unit of time to count.\n * @return {[Interval]}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes\n .map(friendlyDateTime)\n .filter(d => this.contains(d))\n .sort(),\n results = [];\n let { s } = this,\n i = 0;\n\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {[Interval]}\n */\n splitBy(duration) {\n const dur = friendlyDuration(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n let { s } = this,\n added,\n next;\n\n const results = [];\n while (s < this.e) {\n added = s.plus(dur);\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {[Interval]}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Return whether this Interval engulfs the start and end of the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s > e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static merge(intervals) {\n const [found, final] = intervals.sort((a, b) => a.s - b.s).reduce(\n ([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n },\n [[], null]\n );\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map(i => [{ time: i.s, type: \"s\" }, { time: i.e, type: \"e\" }]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {[Interval]}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals))\n .map(i => this.intersection(i))\n .filter(i => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format string.\n * @param {string} dateFormat - the format string. This string formats the start and end time. See {@link DateTime.toFormat} for details.\n * @param {Object} opts - options\n * @param {string} [opts.separator = ' – '] - a separator to place between the start and end representations\n * @return {string}\n */\n toFormat(dateFormat, { separator = \" – \" } = {}) {\n if (!this.isValid) return INVALID;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n","import DateTime from \"./datetime.js\";\nimport Settings from \"./settings.js\";\nimport Locale from \"./impl/locale.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nimport { hasFormatToParts, hasIntl, hasRelative } from \"./impl/util.js\";\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nexport default class Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.local()\n .setZone(zone)\n .set({ month: 12 });\n\n return !zone.universal && proto.offset !== proto.set({ month: 6 }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidSpecifier(zone) && IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone.isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n * @return {[string]}\n */\n static months(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {[string]}\n */\n static monthsFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {[string]}\n */\n static weekdays(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link weekdays}\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @return {[string]}\n */\n static weekdaysFormat(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {[string]}\n */\n static meridiems({ locale = null } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {[string]}\n */\n static eras(length = \"short\", { locale = null } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, timezone support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `zones`: whether this environment supports IANA timezones\n * * `intlTokens`: whether this environment supports internationalized token-based formatting/parsing\n * * `intl`: whether this environment supports general internationalization\n * * `relative`: whether this environment supports relative time formatting\n * @example Info.features() //=> { intl: true, intlTokens: false, zones: true, relative: false }\n * @return {Object}\n */\n static features() {\n let intl = false,\n intlTokens = false,\n zones = false,\n relative = false;\n\n if (hasIntl()) {\n intl = true;\n intlTokens = hasFormatToParts();\n relative = hasRelative();\n\n try {\n zones =\n new Intl.DateTimeFormat(\"en\", { timeZone: \"America/New_York\" }).resolvedOptions()\n .timeZone === \"America/New_York\";\n } catch (e) {\n zones = false;\n }\n }\n\n return { intl, intlTokens, zones, relative };\n }\n}\n","import Duration from \"../duration.js\";\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = dt =>\n dt\n .toUTC(0, { keepLocalTime: true })\n .startOf(\"day\")\n .valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [\n [\"years\", (a, b) => b.year - a.year],\n [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n [\n \"weeks\",\n (a, b) => {\n const days = dayDiff(a, b);\n return (days - (days % 7)) / 7;\n }\n ],\n [\"days\", dayDiff]\n ];\n\n const results = {};\n let lowestOrder, highWater;\n\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n\n let delta = differ(cursor, later);\n highWater = cursor.plus({ [unit]: delta });\n\n if (highWater > later) {\n cursor = cursor.plus({ [unit]: delta - 1 });\n delta -= 1;\n } else {\n cursor = highWater;\n }\n\n results[unit] = delta;\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nexport default function(earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n const remainingMillis = later - cursor;\n\n const lowerOrderUnits = units.filter(\n u => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n );\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({ [lowestOrder]: 1 });\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n const duration = Duration.fromObject(Object.assign(results, opts));\n\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts)\n .shiftTo(...lowerOrderUnits)\n .plus(duration);\n } else {\n return duration;\n }\n}\n","const numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\"\n};\n\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881]\n};\n\n// eslint-disable-next-line\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nexport function parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\nexport function digitRegex({ numberingSystem }, append = \"\") {\n return new RegExp(`${numberingSystems[numberingSystem || \"latn\"]}${append}`);\n}\n","import { parseMillis, isUndefined, untruncateYear, signedOffset, hasOwnProperty } from \"./util.js\";\nimport Formatter from \"./formatter.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport DateTime from \"../datetime.js\";\nimport { digitRegex, parseDigits } from \"./digits.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = i => i) {\n return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n return s.replace(/\\./, \"\\\\.?\");\n}\n\nfunction stripInsensitivities(s) {\n return s.replace(/\\./, \"\").toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) =>\n strings.findIndex(i => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex\n };\n }\n}\n\nfunction offset(regex, groups) {\n return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n // eslint-disable-next-line no-useless-escape\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = t => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n unitate = t => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\", false), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\", false), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true, false), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true, false), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false, false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false, false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false, false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false, false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true, false), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true, false), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n default:\n return literal(t);\n }\n };\n\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP\n };\n\n unit.token = token;\n\n return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\"\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\"\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\"\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\"\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour: {\n numeric: \"h\",\n \"2-digit\": \"hh\"\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\"\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\"\n }\n};\n\nfunction tokenForPart(part, locale, formatOpts) {\n const { type, value } = part;\n\n if (type === \"literal\") {\n return {\n literal: true,\n val: value\n };\n }\n\n const style = formatOpts[type];\n\n let val = partTypeStyleToTokenVal[type];\n if (typeof val === \"object\") {\n val = val[style];\n }\n\n if (val) {\n return {\n literal: false,\n val\n };\n }\n\n return undefined;\n}\n\nfunction buildRegex(units) {\n const re = units.map(u => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n const toField = token => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n\n let zone;\n if (!isUndefined(matches.Z)) {\n zone = new FixedOffsetZone(matches.Z);\n } else if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n } else {\n zone = null;\n }\n\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n\n return [vals, zone];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n\n return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n\n if (!formatOpts) {\n return token;\n }\n\n const formatter = Formatter.create(locale, formatOpts);\n const parts = formatter.formatDateTimeParts(getDummyDateTime());\n\n const tokens = parts.map(p => tokenForPart(p, locale, formatOpts));\n\n if (tokens.includes(undefined)) {\n return token;\n }\n\n return tokens;\n}\n\nfunction expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map(t => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nexport function explainFromTokens(locale, input, format) {\n const tokens = expandMacroTokens(Formatter.parseFormat(format), locale),\n units = tokens.map(t => unitForToken(t, locale)),\n disqualifyingUnit = units.find(t => t.invalidReason);\n\n if (disqualifyingUnit) {\n return { input, tokens, invalidReason: disqualifyingUnit.invalidReason };\n } else {\n const [regexString, handlers] = buildRegex(units),\n regex = RegExp(regexString, \"i\"),\n [rawMatches, matches] = match(input, regex, handlers),\n [result, zone] = matches ? dateTimeFromMatches(matches) : [null, null];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\n \"Can't include meridiem when specifying 24-hour format\"\n );\n }\n return { input, tokens, regex, rawMatches, matches, result, zone };\n }\n}\n\nexport function parseFromTokens(locale, input, format) {\n const { result, zone, invalidReason } = explainFromTokens(locale, input, format);\n return [result, zone, invalidReason];\n}\n","import {\n integerBetween,\n isLeapYear,\n timeObject,\n daysInYear,\n daysInMonth,\n weeksInWeekYear,\n isInteger\n} from \"./util.js\";\nimport Invalid from \"./invalid.js\";\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\n \"unit out of range\",\n `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n );\n}\n\nfunction dayOfWeek(year, month, day) {\n const js = new Date(Date.UTC(year, month - 1, day)).getUTCDay();\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex(i => i < ordinal),\n day = ordinal - table[month0];\n return { month: month0 + 1, day };\n}\n\n/**\n * @private\n */\n\nexport function gregorianToWeek(gregObj) {\n const { year, month, day } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = dayOfWeek(year, month, day);\n\n let weekNumber = Math.floor((ordinal - weekday + 10) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear);\n } else if (weekNumber > weeksInWeekYear(year)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return Object.assign({ weekYear, weekNumber, weekday }, timeObject(gregObj));\n}\n\nexport function weekToGregorian(weekData) {\n const { weekYear, weekNumber, weekday } = weekData,\n weekdayOfJan4 = dayOfWeek(weekYear, 1, 4),\n yearInDays = daysInYear(weekYear);\n\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 3,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n const { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(weekData));\n}\n\nexport function gregorianToOrdinal(gregData) {\n const { year, month, day } = gregData,\n ordinal = computeOrdinal(year, month, day);\n\n return Object.assign({ year, ordinal }, timeObject(gregData));\n}\n\nexport function ordinalToGregorian(ordinalData) {\n const { year, ordinal } = ordinalData,\n { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(ordinalData));\n}\n\nexport function hasInvalidWeekData(obj) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(obj.weekNumber, 1, weeksInWeekYear(obj.weekYear)),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.week);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\n\nexport function hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\n\nexport function hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\n\nexport function hasInvalidTimeData(obj) {\n const { hour, minute, second, millisecond } = obj;\n const validHour =\n integerBetween(hour, 0, 23) ||\n (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n","import Duration, { friendlyDuration } from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Settings from \"./settings.js\";\nimport Info from \"./info.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport {\n isUndefined,\n maybeArray,\n isDate,\n isNumber,\n bestBy,\n daysInMonth,\n daysInYear,\n isLeapYear,\n weeksInWeekYear,\n normalizeObject,\n roundTo,\n objToLocalTS\n} from \"./impl/util.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport diff from \"./impl/diff.js\";\nimport { parseRFC2822Date, parseISODate, parseHTTPDate, parseSQL } from \"./impl/regexParser.js\";\nimport { parseFromTokens, explainFromTokens } from \"./impl/tokenParser.js\";\nimport {\n gregorianToWeek,\n weekToGregorian,\n gregorianToOrdinal,\n ordinalToGregorian,\n hasInvalidGregorianData,\n hasInvalidWeekData,\n hasInvalidOrdinalData,\n hasInvalidTimeData\n} from \"./impl/conversions.js\";\nimport * as Formats from \"./impl/formats.js\";\nimport {\n InvalidArgumentError,\n ConflictingSpecificationError,\n InvalidUnitError,\n InvalidDateTimeError\n} from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid\n };\n return new DateTime(Object.assign({}, current, alts, { old: current }));\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n\n const d = new Date(ts);\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds()\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const keys = Object.keys(dur.values);\n if (keys.indexOf(\"milliseconds\") === -1) {\n keys.push(\"milliseconds\");\n }\n\n dur = dur.shiftTo(...keys);\n\n const oPre = inst.o,\n year = inst.c.year + dur.years,\n month = inst.c.month + dur.months + dur.quarters * 3,\n c = Object.assign({}, inst.c, {\n year,\n month,\n day: Math.min(inst.c.day, daysInMonth(year, month)) + dur.days + dur.weeks * 7\n }),\n millisToAdd = Duration.fromObject({\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n\n return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text) {\n const { setZone, zone } = opts;\n if (parsed && Object.keys(parsed).length !== 0) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(\n Object.assign(parsed, opts, {\n zone: interpretationZone,\n // setZone is a valid option in the calling methods, but not in fromObject\n setZone: undefined\n })\n );\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(\n new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n );\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid\n ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true\n }).formatDateTimeFromString(dt, format)\n : null;\n}\n\n// technical time formats (e.g. the time part of ISO 8601), take some options\n// and this commonizes their handling\nfunction toTechTimeFormat(\n dt,\n {\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset,\n includeZone = false,\n spaceZone = false,\n format = \"extended\"\n }\n) {\n let fmt = format === \"basic\" ? \"HHmm\" : \"HH:mm\";\n\n if (!suppressSeconds || dt.second !== 0 || dt.millisecond !== 0) {\n fmt += format === \"basic\" ? \"ss\" : \":ss\";\n if (!suppressMilliseconds || dt.millisecond !== 0) {\n fmt += \".SSS\";\n }\n }\n\n if ((includeZone || includeOffset) && spaceZone) {\n fmt += \" \";\n }\n\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += format === \"basic\" ? \"ZZZ\" : \"ZZ\";\n }\n\n return toTechFormat(dt, fmt);\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\n \"weekYear\",\n \"weekNumber\",\n \"weekday\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\"\n ],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\"\n }[unit.toLowerCase()];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, zone) {\n // assume we have the higher-order units\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zone.offset(tsNow),\n [ts, o] = objToTS(obj, offsetProvis, zone);\n\n return new DateTime({\n ts,\n zone,\n o\n });\n}\n\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = unit => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end\n .startOf(unit)\n .diff(start.startOf(unit), unit)\n .get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(0, opts.units[opts.units.length - 1]);\n}\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link local}, {@link utc}, and (most flexibly) {@link fromObject}. To create one from a standard string format, use {@link fromISO}, {@link fromHTTP}, and {@link fromRFC2822}. To create one from a custom string format, use {@link fromFormat}. To create one from a native JS date, use {@link fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link toObject}), use the {@link year}, {@link month},\n * {@link day}, {@link hour}, {@link minute}, {@link second}, {@link millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link weekYear}, {@link weekNumber}, and {@link weekday} accessors.\n * * **Configuration** See the {@link locale} and {@link numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link set}, {@link reconfigure}, {@link setZone}, {@link setLocale}, {@link plus}, {@link minus}, {@link endOf}, {@link startOf}, {@link toUTC}, and {@link toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link toRelative}, {@link toRelativeCalendar}, {@link toJSON}, {@link toISO}, {@link toHTTP}, {@link toObject}, {@link toRFC2822}, {@link toString}, {@link toLocaleString}, {@link toFormat}, {@link toMillis} and {@link toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nexport default class DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n\n let invalid =\n config.invalid ||\n (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n const ot = zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12) //~> 2017-03-12T00:00:00\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({ ts: Settings.now() });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n Settings.defaultZone\n );\n }\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765Z\n * @return {DateTime}\n */\n static utc(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({\n ts: Settings.now(),\n zone: FixedOffsetZone.utcInstance\n });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n FixedOffsetZone.utcInstance\n );\n }\n }\n\n /**\n * Create a DateTime from a Javascript Date object. Uses the default zone.\n * @param {Date} date - a Javascript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options)\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\n `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n );\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a Javascript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {string|Zone} [obj.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [obj.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} obj.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} obj.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @return {DateTime}\n */\n static fromObject(obj) {\n const zoneToUse = normalizeZone(obj.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zoneToUse.offset(tsNow),\n normalized = normalizeObject(obj, normalizeUnit, [\n \"zone\",\n \"locale\",\n \"outputCalendar\",\n \"numberingSystem\"\n ]),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber,\n loc = Locale.fromObject(obj);\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData\n ? hasInvalidWeekData(normalized)\n : containsOrdinal\n ? hasInvalidOrdinalData(normalized)\n : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData\n ? weekToGregorian(normalized)\n : containsOrdinal\n ? ordinalToGregorian(normalized)\n : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\n \"mismatched weekday\",\n `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n );\n }\n\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/parsing.html#table-of-tokens\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n }),\n [vals, parsedZone, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({ invalid });\n }\n }\n\n /**\n * Check if an object is a DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return (o && o.isLuxonDateTime) || false;\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.local().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.universal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return (\n this.offset > this.set({ month: 1 }).offset || this.offset > this.set({ month: 5 }).offset\n );\n }\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOpts(opts = {}) {\n const { locale, numberingSystem, calendar } = Formatter.create(\n this.loc.clone(opts),\n opts\n ).resolvedOptions(this);\n return { locale, numberingSystem, outputCalendar: calendar };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link plus}. You may wish to use {@link toLocal} and {@link toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, { ts: newTS, zone });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n return clone(this, { loc });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({ locale });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link reconfigure} and {@link setZone}.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const normalized = normalizeObject(values, normalizeUnit, []),\n settingWeekStuff =\n !isUndefined(normalized.weekYear) ||\n !isUndefined(normalized.weekNumber) ||\n !isUndefined(normalized.weekday);\n\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(Object.assign(gregorianToWeek(this.c), normalized));\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian(Object.assign(gregorianToOrdinal(this.c), normalized));\n } else {\n mixed = Object.assign(this.toObject(), normalized);\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, { ts, o });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.local().plus(123) //~> in 123 milliseconds\n * @example DateTime.local().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.local().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.local().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.local().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.local().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit) {\n if (!this.isValid) return this;\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n case \"milliseconds\":\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n o.weekday = 1;\n }\n\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'month', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit) {\n return this.isValid\n ? this.plus({ [unit]: 1 })\n .startOf(unit)\n .minus(1)\n : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options\n * @example DateTime.local().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.local().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.local().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.local().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param opts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @example DateTime.local().toLocaleString(); //=> 4/20/2017\n * @example DateTime.local().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString({ locale: 'en-gb' }); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.local().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.local().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.local().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.local().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.local().toLocaleString({ hour: '2-digit', minute: '2-digit', hour12: false }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(opts = Formats.DATE_SHORT) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTime(this)\n : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.local().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.local().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.local().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.local().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */\n toISO(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toISODate(opts)}T${this.toISOTime(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */\n toISODate({ format = \"extended\" } = {}) {\n let fmt = format === \"basic\" ? \"yyyyMMdd\" : \"yyyy-MM-dd\";\n if (this.year > 9999) {\n fmt = \"+\" + fmt;\n }\n\n return toTechFormat(this, fmt);\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n format = \"extended\"\n } = {}) {\n return toTechTimeFormat(this, {\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n format\n });\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime, always in UTC\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */\n toSQLDate() {\n return toTechFormat(this, \"yyyy-MM-dd\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.local().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.local().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.local().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({ includeOffset = true, includeZone = false } = {}) {\n return toTechTimeFormat(this, {\n includeOffset,\n includeZone,\n spaceZone: true\n });\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a Javascript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.local().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.c);\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a Javascript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\n this.invalid || otherDateTime.invalid,\n \"created by diffing an invalid DateTime\"\n );\n }\n\n const durOpts = Object.assign(\n { locale: this.locale, numberingSystem: this.numberingSystem },\n opts\n );\n\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.local(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @example DateTime.local().hasSame(otherDT, 'day'); //~> true if both the same calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit) {\n if (!this.isValid) return false;\n if (unit === \"millisecond\") {\n return this.valueOf() === otherDateTime.valueOf();\n } else {\n const inputMs = otherDateTime.valueOf();\n return this.startOf(unit) <= inputMs && inputMs <= this.endOf(unit);\n }\n }\n\n /**\n * Equality check\n * Two DateTimes are equal iff they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return (\n this.isValid &&\n other.isValid &&\n this.valueOf() === other.valueOf() &&\n this.zone.equals(other.zone) &&\n this.loc.equals(other.loc)\n );\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {boolean} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.local().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n * @example DateTime.local().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.local().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.local().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.local().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({ zone: this.zone }),\n padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n return diffRelative(\n base,\n this.plus(padding),\n Object.assign(options, {\n numeric: \"always\",\n units: [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"]\n })\n );\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.local().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.local().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n\n return diffRelative(\n options.base || DateTime.fromObject({ zone: this.zone }),\n this,\n Object.assign(options, {\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true\n })\n );\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return Formats.DATE_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return Formats.DATE_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return Formats.DATE_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return Formats.DATE_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return Formats.TIME_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return Formats.TIME_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return Formats.TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return Formats.TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return Formats.TIME_24_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return Formats.TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return Formats.TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return Formats.TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return Formats.DATETIME_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return Formats.DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return Formats.DATETIME_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return Formats.DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return Formats.DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return Formats.DATETIME_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return Formats.DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return Formats.DATETIME_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return Formats.DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\n `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n );\n }\n}\n"],"names":["LuxonError","Error","InvalidDateTimeError","reason","toMessage","InvalidIntervalError","InvalidDurationError","ConflictingSpecificationError","InvalidUnitError","unit","InvalidArgumentError","ZoneIsAbstractError","n","s","l","DATE_SHORT","year","month","day","DATE_MED","DATE_FULL","DATE_HUGE","weekday","TIME_SIMPLE","hour","minute","TIME_WITH_SECONDS","second","TIME_WITH_SHORT_OFFSET","timeZoneName","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","hour12","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","isUndefined","o","isNumber","isInteger","isString","isDate","Object","prototype","toString","call","hasIntl","Intl","DateTimeFormat","e","hasFormatToParts","formatToParts","hasRelative","RelativeTimeFormat","maybeArray","thing","Array","isArray","bestBy","arr","by","compare","length","undefined","reduce","best","next","pair","pick","obj","keys","a","k","hasOwnProperty","prop","integerBetween","bottom","top","floorMod","x","Math","floor","padStart","input","repeat","slice","parseInteger","string","parseInt","parseMillis","fraction","f","parseFloat","roundTo","number","digits","towardZero","factor","rounder","trunc","round","isLeapYear","daysInYear","daysInMonth","modMonth","modYear","objToLocalTS","d","Date","UTC","millisecond","setUTCFullYear","getUTCFullYear","weeksInWeekYear","weekYear","p1","last","p2","untruncateYear","parseZoneInfo","ts","offsetFormat","locale","timeZone","date","intlOpts","modified","assign","intl","parsed","find","m","type","toLowerCase","value","without","format","included","diffed","substring","trimmed","replace","signedOffset","offHourStr","offMinuteStr","offHour","Number","isNaN","offMin","offMinSigned","is","asNumber","numericValue","normalizeObject","normalizer","nonUnitKeys","normalized","u","indexOf","v","formatOffset","offset","hours","minutes","abs","sign","base","RangeError","timeObject","ianaRegex","stringify","JSON","sort","monthsLong","monthsShort","monthsNarrow","months","weekdaysLong","weekdaysShort","weekdaysNarrow","weekdays","meridiems","erasLong","erasShort","erasNarrow","eras","meridiemForDateTime","dt","weekdayForDateTime","monthForDateTime","eraForDateTime","formatRelativeTime","count","numeric","narrow","units","years","quarters","weeks","days","seconds","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","formatString","knownFormat","filtered","key","dateTimeHuge","Formats","stringifyTokens","splits","tokenToString","token","literal","val","macroTokenToFormatOpts","D","DD","DDD","DDDD","t","tt","ttt","tttt","T","TT","TTT","TTTT","ff","fff","ffff","F","FF","FFF","FFFF","Formatter","create","opts","parseFormat","fmt","current","currentFull","bracketed","i","c","charAt","push","formatOpts","loc","systemLoc","formatWithSystemDefault","redefaultToSystem","df","dtFormatter","formatDateTime","formatDateTimeParts","resolvedOptions","num","p","forceSimple","padTo","numberFormatter","formatDateTimeFromString","knownEnglish","listingMode","useDateTimeFormatter","outputCalendar","extract","isOffsetFixed","allowZ","isValid","zone","meridiem","English","standalone","maybeMacro","era","offsetName","zoneName","weekNumber","ordinal","quarter","formatDurationFromString","dur","tokenToField","lildur","mapped","get","tokens","realTokens","found","concat","collapsed","shiftTo","map","filter","Invalid","explanation","Zone","equals","otherZone","singleton","LocalZone","getTimezoneOffset","matchingRegex","RegExp","source","dtfCache","makeDTF","typeToPos","hackyOffset","dtf","formatted","exec","fMonth","fDay","fYear","fHour","fMinute","fSecond","partsOffset","filled","pos","ianaZoneCache","IANAZone","name","resetCache","isValidSpecifier","match","isValidZone","parseGMTOffset","specifier","valid","adjustedHour","asUTC","asTS","over","FixedOffsetZone","instance","utcInstance","parseSpecifier","r","fixed","InvalidZone","NaN","normalizeZone","defaultZone","lowered","now","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","throwOnInvalid","Settings","resetCaches","Locale","z","numberingSystem","intlDTCache","getCachedDTF","locString","intlNumCache","getCachedINF","inf","NumberFormat","intlRelCache","getCachedRTF","cacheKeyOpts","sysLocaleCache","systemLocale","computedSys","parseLocaleString","localeStr","uIndex","options","smaller","calendar","intlConfigString","mapMonths","ms","DateTime","utc","mapWeekdays","listStuff","defaultOK","englishFn","intlFn","mode","supportsFastNumbers","startsWith","PolyNumberFormatter","useGrouping","minimumIntegerDigits","PolyDateFormatter","universal","fromMillis","toJSDate","tokenFormat","PolyRelFormatter","isEnglish","style","rtf","fromOpts","defaultToEN","specifiedLocale","localeR","numberingSystemR","outputCalendarR","fromObject","numbering","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","weekdaysCache","monthsCache","meridiemCache","eraCache","fastNumbersCached","hasFTP","isActuallyEn","hasNoWeirdness","clone","alts","getOwnPropertyNames","redefaultToEN","formatStr","field","results","matching","fastNumbers","relFormatter","other","combineRegexes","regexes","full","combineExtractors","extractors","ex","mergedVals","mergedZone","cursor","parse","patterns","regex","extractor","simpleParse","ret","offsetRegex","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","isoYmdRegex","isoWeekRegex","isoOrdinalRegex","extractISOWeekData","extractISOOrdinalData","sqlYmdRegex","sqlTimeRegex","sqlTimeExtensionRegex","int","fallback","extractISOYmd","item","extractISOTime","extractISOOffset","local","fullOffset","extractIANAZone","isoDuration","extractISODuration","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","hasNegativePrefix","maybeNegate","milliseconds","obsOffsets","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","fromStrings","weekdayStr","result","rfc2822","extractRFC2822","obsOffset","milOffset","preprocessRFC2822","trim","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDataAndTime","extractISOTimeAndOffset","parseISODate","parseRFC2822Date","parseHTTPDate","parseISODuration","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOYmdTimeOffsetAndIANAZone","extractISOTimeOffsetAndIANAZone","parseSQL","INVALID","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits","reverseUnits","reverse","clear","conf","values","conversionAccuracy","Duration","antiTrunc","ceil","convert","matrix","fromMap","fromUnit","toMap","toUnit","conv","raw","sameSign","added","normalizeValues","vals","previous","config","accurate","invalid","isLuxonDuration","normalizeUnit","fromISO","text","week","isDuration","toFormat","fmtOpts","toObject","includeConfig","toISO","toJSON","valueOf","as","plus","duration","friendlyDuration","minus","negate","mapUnits","fn","set","mixed","reconfigure","normalize","built","accumulated","lastUnit","own","ak","down","negated","durationish","validateStartEnd","start","end","Interval","isLuxonInterval","fromDateTimes","builtStart","friendlyDateTime","builtEnd","validateError","after","before","split","isInterval","toDuration","startOf","diff","hasSame","isEmpty","isAfter","dateTime","isBefore","contains","splitAt","dateTimes","sorted","splitBy","divideEqually","numberOfParts","overlaps","abutsStart","abutsEnd","engulfs","intersection","union","merge","intervals","b","sofar","final","xor","currentCount","ends","time","flattened","difference","toISODate","toISOTime","dateFormat","separator","invalidReason","mapEndpoints","mapFn","Info","hasDST","proto","setZone","isValidIANAZone","monthsFormat","weekdaysFormat","features","intlTokens","zones","relative","dayDiff","earlier","later","utcDayStart","toUTC","keepLocalTime","highOrderDiffs","differs","lowestOrder","highWater","differ","delta","remainingMillis","lowerOrderUnits","numberingSystems","arab","arabext","bali","beng","deva","fullwide","gujr","hanidec","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","latn","numberingSystemsUTF16","hanidecChars","parseDigits","str","code","charCodeAt","search","min","max","digitRegex","append","MISSING_FTP","intUnit","post","deser","fixListRegex","stripInsensitivities","oneOf","strings","startIndex","join","findIndex","groups","h","simple","escapeToken","unitForToken","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","unitate","partTypeStyleToTokenVal","short","long","dayperiod","dayPeriod","tokenForPart","part","buildRegex","re","handlers","matches","all","matchIndex","dateTimeFromMatches","toField","Z","q","M","G","y","S","dummyDateTimeCache","getDummyDateTime","maybeExpandMacroToken","formatter","parts","includes","expandMacroTokens","explainFromTokens","disqualifyingUnit","regexString","rawMatches","parseFromTokens","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","getUTCDay","computeOrdinal","uncomputeOrdinal","table","month0","gregorianToWeek","gregObj","weekToGregorian","weekData","weekdayOfJan4","yearInDays","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","hasInvalidWeekData","validYear","validWeek","validWeekday","hasInvalidOrdinalData","validOrdinal","hasInvalidGregorianData","validMonth","validDay","hasInvalidTimeData","validHour","validMinute","validSecond","validMillisecond","MAX_DATE","unsupportedZone","possiblyCachedWeekData","inst","old","fixOffset","localTS","tz","utcGuess","o2","o3","tsToObj","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","objToTS","adjustTime","oPre","millisToAdd","parseDataToDateTime","parsedZone","interpretationZone","toTechFormat","toTechTimeFormat","suppressSeconds","suppressMilliseconds","includeOffset","includeZone","spaceZone","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedWeekUnits","orderedOrdinalUnits","weeknumber","weeksnumber","weeknumbers","weekyear","weekyears","quickDT","tsNow","offsetProvis","diffRelative","calendary","unchanged","ot","_zone","isLuxonDateTime","fromJSDate","zoneToUse","fromSeconds","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","useWeekData","defaultValues","objNow","foundFirst","higherOrderInvalid","gregorian","tsFinal","offsetFinal","fromRFC2822","fromHTTP","fromFormat","localeToUse","fromString","fromSQL","isDateTime","resolvedLocaleOpts","toLocal","keepCalendarTime","newTS","offsetGuess","asObj","setLocale","settingWeekStuff","normalizedUnit","endOf","toLocaleString","toLocaleParts","toISOWeekDate","toRFC2822","toHTTP","toSQLDate","toSQLTime","toSQL","toMillis","toSeconds","toBSON","otherDateTime","durOpts","otherIsLater","diffNow","until","inputMs","toRelative","padding","toRelativeCalendar","every","fromFormatExplain","fromStringExplain","dateTimeish"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAA;;EAEA;;;MAGMA;;;;;;;;mCAAmBC;EAEzB;;;;;MAGaC,oBAAb;EAAA;;EACE,gCAAYC,MAAZ,EAAoB;EAAA,WAClB,8CAA2BA,MAAM,CAACC,SAAP,EAA3B,CADkB;EAEnB;;EAHH;EAAA,EAA0CJ,UAA1C;EAMA;;;;MAGaK,oBAAb;EAAA;;EACE,gCAAYF,MAAZ,EAAoB;EAAA,WAClB,+CAA2BA,MAAM,CAACC,SAAP,EAA3B,CADkB;EAEnB;;EAHH;EAAA,EAA0CJ,UAA1C;EAMA;;;;MAGaM,oBAAb;EAAA;;EACE,gCAAYH,MAAZ,EAAoB;EAAA,WAClB,+CAA2BA,MAAM,CAACC,SAAP,EAA3B,CADkB;EAEnB;;EAHH;EAAA,EAA0CJ,UAA1C;EAMA;;;;MAGaO,6BAAb;EAAA;;EAAA;EAAA;EAAA;;EAAA;EAAA,EAAmDP,UAAnD;EAEA;;;;MAGaQ,gBAAb;EAAA;;EACE,4BAAYC,IAAZ,EAAkB;EAAA,WAChB,0CAAsBA,IAAtB,CADgB;EAEjB;;EAHH;EAAA,EAAsCT,UAAtC;EAMA;;;;MAGaU,oBAAb;EAAA;;EAAA;EAAA;EAAA;;EAAA;EAAA,EAA0CV,UAA1C;EAEA;;;;MAGaW,mBAAb;EAAA;;EACE,iCAAc;EAAA,WACZ,wBAAM,2BAAN,CADY;EAEb;;EAHH;EAAA,EAAyCX,UAAzC;;ECxDA;;;EAIA,IAAMY,CAAC,GAAG,SAAV;EAAA,IACEC,CAAC,GAAG,OADN;EAAA,IAEEC,CAAC,GAAG,MAFN;EAIO,IAAMC,UAAU,GAAG;EACxBC,EAAAA,IAAI,EAAEJ,CADkB;EAExBK,EAAAA,KAAK,EAAEL,CAFiB;EAGxBM,EAAAA,GAAG,EAAEN;EAHmB,CAAnB;EAMA,IAAMO,QAAQ,GAAG;EACtBH,EAAAA,IAAI,EAAEJ,CADgB;EAEtBK,EAAAA,KAAK,EAAEJ,CAFe;EAGtBK,EAAAA,GAAG,EAAEN;EAHiB,CAAjB;EAMA,IAAMQ,SAAS,GAAG;EACvBJ,EAAAA,IAAI,EAAEJ,CADiB;EAEvBK,EAAAA,KAAK,EAAEH,CAFgB;EAGvBI,EAAAA,GAAG,EAAEN;EAHkB,CAAlB;EAMA,IAAMS,SAAS,GAAG;EACvBL,EAAAA,IAAI,EAAEJ,CADiB;EAEvBK,EAAAA,KAAK,EAAEH,CAFgB;EAGvBI,EAAAA,GAAG,EAAEN,CAHkB;EAIvBU,EAAAA,OAAO,EAAER;EAJc,CAAlB;EAOA,IAAMS,WAAW,GAAG;EACzBC,EAAAA,IAAI,EAAEZ,CADmB;EAEzBa,EAAAA,MAAM,EAAEb;EAFiB,CAApB;EAKA,IAAMc,iBAAiB,GAAG;EAC/BF,EAAAA,IAAI,EAAEZ,CADyB;EAE/Ba,EAAAA,MAAM,EAAEb,CAFuB;EAG/Be,EAAAA,MAAM,EAAEf;EAHuB,CAA1B;EAMA,IAAMgB,sBAAsB,GAAG;EACpCJ,EAAAA,IAAI,EAAEZ,CAD8B;EAEpCa,EAAAA,MAAM,EAAEb,CAF4B;EAGpCe,EAAAA,MAAM,EAAEf,CAH4B;EAIpCiB,EAAAA,YAAY,EAAEhB;EAJsB,CAA/B;EAOA,IAAMiB,qBAAqB,GAAG;EACnCN,EAAAA,IAAI,EAAEZ,CAD6B;EAEnCa,EAAAA,MAAM,EAAEb,CAF2B;EAGnCe,EAAAA,MAAM,EAAEf,CAH2B;EAInCiB,EAAAA,YAAY,EAAEf;EAJqB,CAA9B;EAOA,IAAMiB,cAAc,GAAG;EAC5BP,EAAAA,IAAI,EAAEZ,CADsB;EAE5Ba,EAAAA,MAAM,EAAEb,CAFoB;EAG5BoB,EAAAA,MAAM,EAAE;EAHoB,CAAvB;EAMP;;;;EAGO,IAAMC,oBAAoB,GAAG;EAClCT,EAAAA,IAAI,EAAEZ,CAD4B;EAElCa,EAAAA,MAAM,EAAEb,CAF0B;EAGlCe,EAAAA,MAAM,EAAEf,CAH0B;EAIlCoB,EAAAA,MAAM,EAAE;EAJ0B,CAA7B;EAOP;;;;EAGO,IAAME,yBAAyB,GAAG;EACvCV,EAAAA,IAAI,EAAEZ,CADiC;EAEvCa,EAAAA,MAAM,EAAEb,CAF+B;EAGvCe,EAAAA,MAAM,EAAEf,CAH+B;EAIvCoB,EAAAA,MAAM,EAAE,KAJ+B;EAKvCH,EAAAA,YAAY,EAAEhB;EALyB,CAAlC;EAQP;;;;EAGO,IAAMsB,wBAAwB,GAAG;EACtCX,EAAAA,IAAI,EAAEZ,CADgC;EAEtCa,EAAAA,MAAM,EAAEb,CAF8B;EAGtCe,EAAAA,MAAM,EAAEf,CAH8B;EAItCoB,EAAAA,MAAM,EAAE,KAJ8B;EAKtCH,EAAAA,YAAY,EAAEf;EALwB,CAAjC;EAQP;;;;EAGO,IAAMsB,cAAc,GAAG;EAC5BpB,EAAAA,IAAI,EAAEJ,CADsB;EAE5BK,EAAAA,KAAK,EAAEL,CAFqB;EAG5BM,EAAAA,GAAG,EAAEN,CAHuB;EAI5BY,EAAAA,IAAI,EAAEZ,CAJsB;EAK5Ba,EAAAA,MAAM,EAAEb;EALoB,CAAvB;EAQP;;;;EAGO,IAAMyB,2BAA2B,GAAG;EACzCrB,EAAAA,IAAI,EAAEJ,CADmC;EAEzCK,EAAAA,KAAK,EAAEL,CAFkC;EAGzCM,EAAAA,GAAG,EAAEN,CAHoC;EAIzCY,EAAAA,IAAI,EAAEZ,CAJmC;EAKzCa,EAAAA,MAAM,EAAEb,CALiC;EAMzCe,EAAAA,MAAM,EAAEf;EANiC,CAApC;EASA,IAAM0B,YAAY,GAAG;EAC1BtB,EAAAA,IAAI,EAAEJ,CADoB;EAE1BK,EAAAA,KAAK,EAAEJ,CAFmB;EAG1BK,EAAAA,GAAG,EAAEN,CAHqB;EAI1BY,EAAAA,IAAI,EAAEZ,CAJoB;EAK1Ba,EAAAA,MAAM,EAAEb;EALkB,CAArB;EAQA,IAAM2B,yBAAyB,GAAG;EACvCvB,EAAAA,IAAI,EAAEJ,CADiC;EAEvCK,EAAAA,KAAK,EAAEJ,CAFgC;EAGvCK,EAAAA,GAAG,EAAEN,CAHkC;EAIvCY,EAAAA,IAAI,EAAEZ,CAJiC;EAKvCa,EAAAA,MAAM,EAAEb,CAL+B;EAMvCe,EAAAA,MAAM,EAAEf;EAN+B,CAAlC;EASA,IAAM4B,yBAAyB,GAAG;EACvCxB,EAAAA,IAAI,EAAEJ,CADiC;EAEvCK,EAAAA,KAAK,EAAEJ,CAFgC;EAGvCK,EAAAA,GAAG,EAAEN,CAHkC;EAIvCU,EAAAA,OAAO,EAAET,CAJ8B;EAKvCW,EAAAA,IAAI,EAAEZ,CALiC;EAMvCa,EAAAA,MAAM,EAAEb;EAN+B,CAAlC;EASA,IAAM6B,aAAa,GAAG;EAC3BzB,EAAAA,IAAI,EAAEJ,CADqB;EAE3BK,EAAAA,KAAK,EAAEH,CAFoB;EAG3BI,EAAAA,GAAG,EAAEN,CAHsB;EAI3BY,EAAAA,IAAI,EAAEZ,CAJqB;EAK3Ba,EAAAA,MAAM,EAAEb,CALmB;EAM3BiB,EAAAA,YAAY,EAAEhB;EANa,CAAtB;EASA,IAAM6B,0BAA0B,GAAG;EACxC1B,EAAAA,IAAI,EAAEJ,CADkC;EAExCK,EAAAA,KAAK,EAAEH,CAFiC;EAGxCI,EAAAA,GAAG,EAAEN,CAHmC;EAIxCY,EAAAA,IAAI,EAAEZ,CAJkC;EAKxCa,EAAAA,MAAM,EAAEb,CALgC;EAMxCe,EAAAA,MAAM,EAAEf,CANgC;EAOxCiB,EAAAA,YAAY,EAAEhB;EAP0B,CAAnC;EAUA,IAAM8B,aAAa,GAAG;EAC3B3B,EAAAA,IAAI,EAAEJ,CADqB;EAE3BK,EAAAA,KAAK,EAAEH,CAFoB;EAG3BI,EAAAA,GAAG,EAAEN,CAHsB;EAI3BU,EAAAA,OAAO,EAAER,CAJkB;EAK3BU,EAAAA,IAAI,EAAEZ,CALqB;EAM3Ba,EAAAA,MAAM,EAAEb,CANmB;EAO3BiB,EAAAA,YAAY,EAAEf;EAPa,CAAtB;EAUA,IAAM8B,0BAA0B,GAAG;EACxC5B,EAAAA,IAAI,EAAEJ,CADkC;EAExCK,EAAAA,KAAK,EAAEH,CAFiC;EAGxCI,EAAAA,GAAG,EAAEN,CAHmC;EAIxCU,EAAAA,OAAO,EAAER,CAJ+B;EAKxCU,EAAAA,IAAI,EAAEZ,CALkC;EAMxCa,EAAAA,MAAM,EAAEb,CANgC;EAOxCe,EAAAA,MAAM,EAAEf,CAPgC;EAQxCiB,EAAAA,YAAY,EAAEf;EAR0B,CAAnC;;EC9KP;;;;;EAQA;;;EAIA;;EAEO,SAAS+B,WAAT,CAAqBC,CAArB,EAAwB;EAC7B,SAAO,OAAOA,CAAP,KAAa,WAApB;EACD;EAEM,SAASC,QAAT,CAAkBD,CAAlB,EAAqB;EAC1B,SAAO,OAAOA,CAAP,KAAa,QAApB;EACD;EAEM,SAASE,SAAT,CAAmBF,CAAnB,EAAsB;EAC3B,SAAO,OAAOA,CAAP,KAAa,QAAb,IAAyBA,CAAC,GAAG,CAAJ,KAAU,CAA1C;EACD;EAEM,SAASG,QAAT,CAAkBH,CAAlB,EAAqB;EAC1B,SAAO,OAAOA,CAAP,KAAa,QAApB;EACD;EAEM,SAASI,MAAT,CAAgBJ,CAAhB,EAAmB;EACxB,SAAOK,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BR,CAA/B,MAAsC,eAA7C;EACD;;EAIM,SAASS,OAAT,GAAmB;EACxB,MAAI;EACF,WAAO,OAAOC,IAAP,KAAgB,WAAhB,IAA+BA,IAAI,CAACC,cAA3C;EACD,GAFD,CAEE,OAAOC,CAAP,EAAU;EACV,WAAO,KAAP;EACD;EACF;EAEM,SAASC,gBAAT,GAA4B;EACjC,SAAO,CAACd,WAAW,CAACW,IAAI,CAACC,cAAL,CAAoBL,SAApB,CAA8BQ,aAA/B,CAAnB;EACD;EAEM,SAASC,WAAT,GAAuB;EAC5B,MAAI;EACF,WAAO,OAAOL,IAAP,KAAgB,WAAhB,IAA+B,CAAC,CAACA,IAAI,CAACM,kBAA7C;EACD,GAFD,CAEE,OAAOJ,CAAP,EAAU;EACV,WAAO,KAAP;EACD;EACF;;EAIM,SAASK,UAAT,CAAoBC,KAApB,EAA2B;EAChC,SAAOC,KAAK,CAACC,OAAN,CAAcF,KAAd,IAAuBA,KAAvB,GAA+B,CAACA,KAAD,CAAtC;EACD;EAEM,SAASG,MAAT,CAAgBC,GAAhB,EAAqBC,EAArB,EAAyBC,OAAzB,EAAkC;EACvC,MAAIF,GAAG,CAACG,MAAJ,KAAe,CAAnB,EAAsB;EACpB,WAAOC,SAAP;EACD;;EACD,SAAOJ,GAAG,CAACK,MAAJ,CAAW,UAACC,IAAD,EAAOC,IAAP,EAAgB;EAChC,QAAMC,IAAI,GAAG,CAACP,EAAE,CAACM,IAAD,CAAH,EAAWA,IAAX,CAAb;;EACA,QAAI,CAACD,IAAL,EAAW;EACT,aAAOE,IAAP;EACD,KAFD,MAEO,IAAIN,OAAO,CAACI,IAAI,CAAC,CAAD,CAAL,EAAUE,IAAI,CAAC,CAAD,CAAd,CAAP,KAA8BF,IAAI,CAAC,CAAD,CAAtC,EAA2C;EAChD,aAAOA,IAAP;EACD,KAFM,MAEA;EACL,aAAOE,IAAP;EACD;EACF,GATM,EASJ,IATI,EASE,CATF,CAAP;EAUD;EAEM,SAASC,IAAT,CAAcC,GAAd,EAAmBC,IAAnB,EAAyB;EAC9B,SAAOA,IAAI,CAACN,MAAL,CAAY,UAACO,CAAD,EAAIC,CAAJ,EAAU;EAC3BD,IAAAA,CAAC,CAACC,CAAD,CAAD,GAAOH,GAAG,CAACG,CAAD,CAAV;EACA,WAAOD,CAAP;EACD,GAHM,EAGJ,EAHI,CAAP;EAID;EAEM,SAASE,cAAT,CAAwBJ,GAAxB,EAA6BK,IAA7B,EAAmC;EACxC,SAAOhC,MAAM,CAACC,SAAP,CAAiB8B,cAAjB,CAAgC5B,IAAhC,CAAqCwB,GAArC,EAA0CK,IAA1C,CAAP;EACD;;EAIM,SAASC,cAAT,CAAwBpB,KAAxB,EAA+BqB,MAA/B,EAAuCC,GAAvC,EAA4C;EACjD,SAAOtC,SAAS,CAACgB,KAAD,CAAT,IAAoBA,KAAK,IAAIqB,MAA7B,IAAuCrB,KAAK,IAAIsB,GAAvD;EACD;;EAGM,SAASC,QAAT,CAAkBC,CAAlB,EAAqB5E,CAArB,EAAwB;EAC7B,SAAO4E,CAAC,GAAG5E,CAAC,GAAG6E,IAAI,CAACC,KAAL,CAAWF,CAAC,GAAG5E,CAAf,CAAf;EACD;EAEM,SAAS+E,QAAT,CAAkBC,KAAlB,EAAyBhF,CAAzB,EAAgC;EAAA,MAAPA,CAAO;EAAPA,IAAAA,CAAO,GAAH,CAAG;EAAA;;EACrC,MAAIgF,KAAK,CAACvC,QAAN,GAAiBkB,MAAjB,GAA0B3D,CAA9B,EAAiC;EAC/B,WAAO,CAAC,IAAIiF,MAAJ,CAAWjF,CAAX,IAAgBgF,KAAjB,EAAwBE,KAAxB,CAA8B,CAAClF,CAA/B,CAAP;EACD,GAFD,MAEO;EACL,WAAOgF,KAAK,CAACvC,QAAN,EAAP;EACD;EACF;EAEM,SAAS0C,YAAT,CAAsBC,MAAtB,EAA8B;EACnC,MAAInD,WAAW,CAACmD,MAAD,CAAX,IAAuBA,MAAM,KAAK,IAAlC,IAA0CA,MAAM,KAAK,EAAzD,EAA6D;EAC3D,WAAOxB,SAAP;EACD,GAFD,MAEO;EACL,WAAOyB,QAAQ,CAACD,MAAD,EAAS,EAAT,CAAf;EACD;EACF;EAEM,SAASE,WAAT,CAAqBC,QAArB,EAA+B;EACpC;EACA,MAAItD,WAAW,CAACsD,QAAD,CAAX,IAAyBA,QAAQ,KAAK,IAAtC,IAA8CA,QAAQ,KAAK,EAA/D,EAAmE;EACjE,WAAO3B,SAAP;EACD,GAFD,MAEO;EACL,QAAM4B,CAAC,GAAGC,UAAU,CAAC,OAAOF,QAAR,CAAV,GAA8B,IAAxC;EACA,WAAOV,IAAI,CAACC,KAAL,CAAWU,CAAX,CAAP;EACD;EACF;EAEM,SAASE,OAAT,CAAiBC,MAAjB,EAAyBC,MAAzB,EAAiCC,UAAjC,EAAqD;EAAA,MAApBA,UAAoB;EAApBA,IAAAA,UAAoB,GAAP,KAAO;EAAA;;EAC1D,MAAMC,MAAM,YAAG,EAAH,EAASF,MAAT,CAAZ;EAAA,MACEG,OAAO,GAAGF,UAAU,GAAGhB,IAAI,CAACmB,KAAR,GAAgBnB,IAAI,CAACoB,KAD3C;EAEA,SAAOF,OAAO,CAACJ,MAAM,GAAGG,MAAV,CAAP,GAA2BA,MAAlC;EACD;;EAIM,SAASI,UAAT,CAAoB9F,IAApB,EAA0B;EAC/B,SAAOA,IAAI,GAAG,CAAP,KAAa,CAAb,KAAmBA,IAAI,GAAG,GAAP,KAAe,CAAf,IAAoBA,IAAI,GAAG,GAAP,KAAe,CAAtD,CAAP;EACD;EAEM,SAAS+F,UAAT,CAAoB/F,IAApB,EAA0B;EAC/B,SAAO8F,UAAU,CAAC9F,IAAD,CAAV,GAAmB,GAAnB,GAAyB,GAAhC;EACD;EAEM,SAASgG,WAAT,CAAqBhG,IAArB,EAA2BC,KAA3B,EAAkC;EACvC,MAAMgG,QAAQ,GAAG1B,QAAQ,CAACtE,KAAK,GAAG,CAAT,EAAY,EAAZ,CAAR,GAA0B,CAA3C;EAAA,MACEiG,OAAO,GAAGlG,IAAI,GAAG,CAACC,KAAK,GAAGgG,QAAT,IAAqB,EADxC;;EAGA,MAAIA,QAAQ,KAAK,CAAjB,EAAoB;EAClB,WAAOH,UAAU,CAACI,OAAD,CAAV,GAAsB,EAAtB,GAA2B,EAAlC;EACD,GAFD,MAEO;EACL,WAAO,CAAC,EAAD,EAAK,IAAL,EAAW,EAAX,EAAe,EAAf,EAAmB,EAAnB,EAAuB,EAAvB,EAA2B,EAA3B,EAA+B,EAA/B,EAAmC,EAAnC,EAAuC,EAAvC,EAA2C,EAA3C,EAA+C,EAA/C,EAAmDD,QAAQ,GAAG,CAA9D,CAAP;EACD;EACF;;EAGM,SAASE,YAAT,CAAsBrC,GAAtB,EAA2B;EAChC,MAAIsC,CAAC,GAAGC,IAAI,CAACC,GAAL,CACNxC,GAAG,CAAC9D,IADE,EAEN8D,GAAG,CAAC7D,KAAJ,GAAY,CAFN,EAGN6D,GAAG,CAAC5D,GAHE,EAIN4D,GAAG,CAACtD,IAJE,EAKNsD,GAAG,CAACrD,MALE,EAMNqD,GAAG,CAACnD,MANE,EAONmD,GAAG,CAACyC,WAPE,CAAR,CADgC;;EAYhC,MAAIzC,GAAG,CAAC9D,IAAJ,GAAW,GAAX,IAAkB8D,GAAG,CAAC9D,IAAJ,IAAY,CAAlC,EAAqC;EACnCoG,IAAAA,CAAC,GAAG,IAAIC,IAAJ,CAASD,CAAT,CAAJ;EACAA,IAAAA,CAAC,CAACI,cAAF,CAAiBJ,CAAC,CAACK,cAAF,KAAqB,IAAtC;EACD;;EACD,SAAO,CAACL,CAAR;EACD;EAEM,SAASM,eAAT,CAAyBC,QAAzB,EAAmC;EACxC,MAAMC,EAAE,GACJ,CAACD,QAAQ,GACPlC,IAAI,CAACC,KAAL,CAAWiC,QAAQ,GAAG,CAAtB,CADD,GAEClC,IAAI,CAACC,KAAL,CAAWiC,QAAQ,GAAG,GAAtB,CAFD,GAGClC,IAAI,CAACC,KAAL,CAAWiC,QAAQ,GAAG,GAAtB,CAHF,IAIA,CALJ;EAAA,MAMEE,IAAI,GAAGF,QAAQ,GAAG,CANpB;EAAA,MAOEG,EAAE,GAAG,CAACD,IAAI,GAAGpC,IAAI,CAACC,KAAL,CAAWmC,IAAI,GAAG,CAAlB,CAAP,GAA8BpC,IAAI,CAACC,KAAL,CAAWmC,IAAI,GAAG,GAAlB,CAA9B,GAAuDpC,IAAI,CAACC,KAAL,CAAWmC,IAAI,GAAG,GAAlB,CAAxD,IAAkF,CAPzF;EAQA,SAAOD,EAAE,KAAK,CAAP,IAAYE,EAAE,KAAK,CAAnB,GAAuB,EAAvB,GAA4B,EAAnC;EACD;EAEM,SAASC,cAAT,CAAwB/G,IAAxB,EAA8B;EACnC,MAAIA,IAAI,GAAG,EAAX,EAAe;EACb,WAAOA,IAAP;EACD,GAFD,MAEO,OAAOA,IAAI,GAAG,EAAP,GAAY,OAAOA,IAAnB,GAA0B,OAAOA,IAAxC;EACR;;EAIM,SAASgH,aAAT,CAAuBC,EAAvB,EAA2BC,YAA3B,EAAyCC,MAAzC,EAAiDC,QAAjD,EAAkE;EAAA,MAAjBA,QAAiB;EAAjBA,IAAAA,QAAiB,GAAN,IAAM;EAAA;;EACvE,MAAMC,IAAI,GAAG,IAAIhB,IAAJ,CAASY,EAAT,CAAb;EAAA,MACEK,QAAQ,GAAG;EACTtG,IAAAA,MAAM,EAAE,KADC;EAEThB,IAAAA,IAAI,EAAE,SAFG;EAGTC,IAAAA,KAAK,EAAE,SAHE;EAITC,IAAAA,GAAG,EAAE,SAJI;EAKTM,IAAAA,IAAI,EAAE,SALG;EAMTC,IAAAA,MAAM,EAAE;EANC,GADb;;EAUA,MAAI2G,QAAJ,EAAc;EACZE,IAAAA,QAAQ,CAACF,QAAT,GAAoBA,QAApB;EACD;;EAED,MAAMG,QAAQ,GAAGpF,MAAM,CAACqF,MAAP,CAAc;EAAE3G,IAAAA,YAAY,EAAEqG;EAAhB,GAAd,EAA8CI,QAA9C,CAAjB;EAAA,MACEG,IAAI,GAAGlF,OAAO,EADhB;;EAGA,MAAIkF,IAAI,IAAI9E,gBAAgB,EAA5B,EAAgC;EAC9B,QAAM+E,MAAM,GAAG,IAAIlF,IAAI,CAACC,cAAT,CAAwB0E,MAAxB,EAAgCI,QAAhC,EACZ3E,aADY,CACEyE,IADF,EAEZM,IAFY,CAEP,UAAAC,CAAC;EAAA,aAAIA,CAAC,CAACC,IAAF,CAAOC,WAAP,OAAyB,cAA7B;EAAA,KAFM,CAAf;EAGA,WAAOJ,MAAM,GAAGA,MAAM,CAACK,KAAV,GAAkB,IAA/B;EACD,GALD,MAKO,IAAIN,IAAJ,EAAU;EACf;EACA,QAAMO,OAAO,GAAG,IAAIxF,IAAI,CAACC,cAAT,CAAwB0E,MAAxB,EAAgCG,QAAhC,EAA0CW,MAA1C,CAAiDZ,IAAjD,CAAhB;EAAA,QACEa,QAAQ,GAAG,IAAI1F,IAAI,CAACC,cAAT,CAAwB0E,MAAxB,EAAgCI,QAAhC,EAA0CU,MAA1C,CAAiDZ,IAAjD,CADb;EAAA,QAEEc,MAAM,GAAGD,QAAQ,CAACE,SAAT,CAAmBJ,OAAO,CAACzE,MAA3B,CAFX;EAAA,QAGE8E,OAAO,GAAGF,MAAM,CAACG,OAAP,CAAe,cAAf,EAA+B,EAA/B,CAHZ;EAIA,WAAOD,OAAP;EACD,GAPM,MAOA;EACL,WAAO,IAAP;EACD;EACF;;EAGM,SAASE,YAAT,CAAsBC,UAAtB,EAAkCC,YAAlC,EAAgD;EACrD,MAAIC,OAAO,GAAGzD,QAAQ,CAACuD,UAAD,EAAa,EAAb,CAAtB,CADqD;;EAIrD,MAAIG,MAAM,CAACC,KAAP,CAAaF,OAAb,CAAJ,EAA2B;EACzBA,IAAAA,OAAO,GAAG,CAAV;EACD;;EAED,MAAMG,MAAM,GAAG5D,QAAQ,CAACwD,YAAD,EAAe,EAAf,CAAR,IAA8B,CAA7C;EAAA,MACEK,YAAY,GAAGJ,OAAO,GAAG,CAAV,IAAevG,MAAM,CAAC4G,EAAP,CAAUL,OAAV,EAAmB,CAAC,CAApB,CAAf,GAAwC,CAACG,MAAzC,GAAkDA,MADnE;EAEA,SAAOH,OAAO,GAAG,EAAV,GAAeI,YAAtB;EACD;;EAIM,SAASE,QAAT,CAAkBjB,KAAlB,EAAyB;EAC9B,MAAMkB,YAAY,GAAGN,MAAM,CAACZ,KAAD,CAA3B;EACA,MAAI,OAAOA,KAAP,KAAiB,SAAjB,IAA8BA,KAAK,KAAK,EAAxC,IAA8CY,MAAM,CAACC,KAAP,CAAaK,YAAb,CAAlD,EACE,MAAM,IAAIvJ,oBAAJ,yBAA+CqI,KAA/C,CAAN;EACF,SAAOkB,YAAP;EACD;EAEM,SAASC,eAAT,CAAyBpF,GAAzB,EAA8BqF,UAA9B,EAA0CC,WAA1C,EAAuD;EAC5D,MAAMC,UAAU,GAAG,EAAnB;;EACA,OAAK,IAAMC,CAAX,IAAgBxF,GAAhB,EAAqB;EACnB,QAAII,cAAc,CAACJ,GAAD,EAAMwF,CAAN,CAAlB,EAA4B;EAC1B,UAAIF,WAAW,CAACG,OAAZ,CAAoBD,CAApB,KAA0B,CAA9B,EAAiC;EACjC,UAAME,CAAC,GAAG1F,GAAG,CAACwF,CAAD,CAAb;EACA,UAAIE,CAAC,KAAKhG,SAAN,IAAmBgG,CAAC,KAAK,IAA7B,EAAmC;EACnCH,MAAAA,UAAU,CAACF,UAAU,CAACG,CAAD,CAAX,CAAV,GAA4BN,QAAQ,CAACQ,CAAD,CAApC;EACD;EACF;;EACD,SAAOH,UAAP;EACD;EAEM,SAASI,YAAT,CAAsBC,MAAtB,EAA8BzB,MAA9B,EAAsC;EAC3C,MAAM0B,KAAK,GAAGlF,IAAI,CAACmB,KAAL,CAAW8D,MAAM,GAAG,EAApB,CAAd;EAAA,MACEE,OAAO,GAAGnF,IAAI,CAACoF,GAAL,CAASH,MAAM,GAAG,EAAlB,CADZ;EAAA,MAEEI,IAAI,GAAGH,KAAK,IAAI,CAAT,IAAc,CAACxH,MAAM,CAAC4G,EAAP,CAAUY,KAAV,EAAiB,CAAC,CAAlB,CAAf,GAAsC,GAAtC,GAA4C,GAFrD;EAAA,MAGEI,IAAI,QAAMD,IAAN,GAAarF,IAAI,CAACoF,GAAL,CAASF,KAAT,CAHnB;;EAKA,UAAQ1B,MAAR;EACE,SAAK,OAAL;EACE,kBAAU6B,IAAV,GAAiBnF,QAAQ,CAACF,IAAI,CAACoF,GAAL,CAASF,KAAT,CAAD,EAAkB,CAAlB,CAAzB,SAAiDhF,QAAQ,CAACiF,OAAD,EAAU,CAAV,CAAzD;;EACF,SAAK,QAAL;EACE,aAAOA,OAAO,GAAG,CAAV,GAAiBG,IAAjB,SAAyBH,OAAzB,GAAqCG,IAA5C;;EACF,SAAK,QAAL;EACE,kBAAUD,IAAV,GAAiBnF,QAAQ,CAACF,IAAI,CAACoF,GAAL,CAASF,KAAT,CAAD,EAAkB,CAAlB,CAAzB,GAAgDhF,QAAQ,CAACiF,OAAD,EAAU,CAAV,CAAxD;;EACF;EACE,YAAM,IAAII,UAAJ,mBAA+B/B,MAA/B,0CAAN;EARJ;EAUD;EAEM,SAASgC,UAAT,CAAoBnG,GAApB,EAAyB;EAC9B,SAAOD,IAAI,CAACC,GAAD,EAAM,CAAC,MAAD,EAAS,QAAT,EAAmB,QAAnB,EAA6B,aAA7B,CAAN,CAAX;EACD;EAEM,IAAMoG,SAAS,GAAG,oEAAlB;;EC3RP,SAASC,SAAT,CAAmBrG,GAAnB,EAAwB;EACtB,SAAOsG,IAAI,CAACD,SAAL,CAAerG,GAAf,EAAoB3B,MAAM,CAAC4B,IAAP,CAAYD,GAAZ,EAAiBuG,IAAjB,EAApB,CAAP;EACD;EAED;;;;;EAIO,IAAMC,UAAU,GAAG,CACxB,SADwB,EAExB,UAFwB,EAGxB,OAHwB,EAIxB,OAJwB,EAKxB,KALwB,EAMxB,MANwB,EAOxB,MAPwB,EAQxB,QARwB,EASxB,WATwB,EAUxB,SAVwB,EAWxB,UAXwB,EAYxB,UAZwB,CAAnB;EAeA,IAAMC,WAAW,GAAG,CACzB,KADyB,EAEzB,KAFyB,EAGzB,KAHyB,EAIzB,KAJyB,EAKzB,KALyB,EAMzB,KANyB,EAOzB,KAPyB,EAQzB,KARyB,EASzB,KATyB,EAUzB,KAVyB,EAWzB,KAXyB,EAYzB,KAZyB,CAApB;EAeA,IAAMC,YAAY,GAAG,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,EAAoC,GAApC,EAAyC,GAAzC,EAA8C,GAA9C,EAAmD,GAAnD,EAAwD,GAAxD,CAArB;EAEA,SAASC,MAAT,CAAgBlH,MAAhB,EAAwB;EAC7B,UAAQA,MAAR;EACE,SAAK,QAAL;EACE,aAAOiH,YAAP;;EACF,SAAK,OAAL;EACE,aAAOD,WAAP;;EACF,SAAK,MAAL;EACE,aAAOD,UAAP;;EACF,SAAK,SAAL;EACE,aAAO,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,EAAoC,GAApC,EAAyC,GAAzC,EAA8C,IAA9C,EAAoD,IAApD,EAA0D,IAA1D,CAAP;;EACF,SAAK,SAAL;EACE,aAAO,CAAC,IAAD,EAAO,IAAP,EAAa,IAAb,EAAmB,IAAnB,EAAyB,IAAzB,EAA+B,IAA/B,EAAqC,IAArC,EAA2C,IAA3C,EAAiD,IAAjD,EAAuD,IAAvD,EAA6D,IAA7D,EAAmE,IAAnE,CAAP;;EACF;EACE,aAAO,IAAP;EAZJ;EAcD;EAEM,IAAMI,YAAY,GAAG,CAC1B,QAD0B,EAE1B,SAF0B,EAG1B,WAH0B,EAI1B,UAJ0B,EAK1B,QAL0B,EAM1B,UAN0B,EAO1B,QAP0B,CAArB;EAUA,IAAMC,aAAa,GAAG,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsB,KAAtB,EAA6B,KAA7B,EAAoC,KAApC,EAA2C,KAA3C,CAAtB;EAEA,IAAMC,cAAc,GAAG,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,CAAvB;EAEA,SAASC,QAAT,CAAkBtH,MAAlB,EAA0B;EAC/B,UAAQA,MAAR;EACE,SAAK,QAAL;EACE,aAAOqH,cAAP;;EACF,SAAK,OAAL;EACE,aAAOD,aAAP;;EACF,SAAK,MAAL;EACE,aAAOD,YAAP;;EACF,SAAK,SAAL;EACE,aAAO,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,CAAP;;EACF;EACE,aAAO,IAAP;EAVJ;EAYD;EAEM,IAAMI,SAAS,GAAG,CAAC,IAAD,EAAO,IAAP,CAAlB;EAEA,IAAMC,QAAQ,GAAG,CAAC,eAAD,EAAkB,aAAlB,CAAjB;EAEA,IAAMC,SAAS,GAAG,CAAC,IAAD,EAAO,IAAP,CAAlB;EAEA,IAAMC,UAAU,GAAG,CAAC,GAAD,EAAM,GAAN,CAAnB;EAEA,SAASC,IAAT,CAAc3H,MAAd,EAAsB;EAC3B,UAAQA,MAAR;EACE,SAAK,QAAL;EACE,aAAO0H,UAAP;;EACF,SAAK,OAAL;EACE,aAAOD,SAAP;;EACF,SAAK,MAAL;EACE,aAAOD,QAAP;;EACF;EACE,aAAO,IAAP;EARJ;EAUD;EAEM,SAASI,mBAAT,CAA6BC,EAA7B,EAAiC;EACtC,SAAON,SAAS,CAACM,EAAE,CAAC5K,IAAH,GAAU,EAAV,GAAe,CAAf,GAAmB,CAApB,CAAhB;EACD;EAEM,SAAS6K,kBAAT,CAA4BD,EAA5B,EAAgC7H,MAAhC,EAAwC;EAC7C,SAAOsH,QAAQ,CAACtH,MAAD,CAAR,CAAiB6H,EAAE,CAAC9K,OAAH,GAAa,CAA9B,CAAP;EACD;EAEM,SAASgL,gBAAT,CAA0BF,EAA1B,EAA8B7H,MAA9B,EAAsC;EAC3C,SAAOkH,MAAM,CAAClH,MAAD,CAAN,CAAe6H,EAAE,CAACnL,KAAH,GAAW,CAA1B,CAAP;EACD;EAEM,SAASsL,cAAT,CAAwBH,EAAxB,EAA4B7H,MAA5B,EAAoC;EACzC,SAAO2H,IAAI,CAAC3H,MAAD,CAAJ,CAAa6H,EAAE,CAACpL,IAAH,GAAU,CAAV,GAAc,CAAd,GAAkB,CAA/B,CAAP;EACD;EAEM,SAASwL,kBAAT,CAA4B/L,IAA5B,EAAkCgM,KAAlC,EAAyCC,OAAzC,EAA6DC,MAA7D,EAA6E;EAAA,MAApCD,OAAoC;EAApCA,IAAAA,OAAoC,GAA1B,QAA0B;EAAA;;EAAA,MAAhBC,MAAgB;EAAhBA,IAAAA,MAAgB,GAAP,KAAO;EAAA;;EAClF,MAAMC,KAAK,GAAG;EACZC,IAAAA,KAAK,EAAE,CAAC,MAAD,EAAS,KAAT,CADK;EAEZC,IAAAA,QAAQ,EAAE,CAAC,SAAD,EAAY,MAAZ,CAFE;EAGZrB,IAAAA,MAAM,EAAE,CAAC,OAAD,EAAU,KAAV,CAHI;EAIZsB,IAAAA,KAAK,EAAE,CAAC,MAAD,EAAS,KAAT,CAJK;EAKZC,IAAAA,IAAI,EAAE,CAAC,KAAD,EAAQ,KAAR,EAAe,MAAf,CALM;EAMZrC,IAAAA,KAAK,EAAE,CAAC,MAAD,EAAS,KAAT,CANK;EAOZC,IAAAA,OAAO,EAAE,CAAC,QAAD,EAAW,MAAX,CAPG;EAQZqC,IAAAA,OAAO,EAAE,CAAC,QAAD,EAAW,MAAX;EARG,GAAd;EAWA,MAAMC,QAAQ,GAAG,CAAC,OAAD,EAAU,SAAV,EAAqB,SAArB,EAAgC3C,OAAhC,CAAwC9J,IAAxC,MAAkD,CAAC,CAApE;;EAEA,MAAIiM,OAAO,KAAK,MAAZ,IAAsBQ,QAA1B,EAAoC;EAClC,QAAMC,KAAK,GAAG1M,IAAI,KAAK,MAAvB;;EACA,YAAQgM,KAAR;EACE,WAAK,CAAL;EACE,eAAOU,KAAK,GAAG,UAAH,aAAwBP,KAAK,CAACnM,IAAD,CAAL,CAAY,CAAZ,CAApC;;EACF,WAAK,CAAC,CAAN;EACE,eAAO0M,KAAK,GAAG,WAAH,aAAyBP,KAAK,CAACnM,IAAD,CAAL,CAAY,CAAZ,CAArC;;EACF,WAAK,CAAL;EACE,eAAO0M,KAAK,GAAG,OAAH,aAAqBP,KAAK,CAACnM,IAAD,CAAL,CAAY,CAAZ,CAAjC;;EANJ;EASD;;EAED,MAAM2M,QAAQ,GAAGjK,MAAM,CAAC4G,EAAP,CAAU0C,KAAV,EAAiB,CAAC,CAAlB,KAAwBA,KAAK,GAAG,CAAjD;EAAA,MACEY,QAAQ,GAAG5H,IAAI,CAACoF,GAAL,CAAS4B,KAAT,CADb;EAAA,MAEEa,QAAQ,GAAGD,QAAQ,KAAK,CAF1B;EAAA,MAGEE,QAAQ,GAAGX,KAAK,CAACnM,IAAD,CAHlB;EAAA,MAIE+M,OAAO,GAAGb,MAAM,GACZW,QAAQ,GACNC,QAAQ,CAAC,CAAD,CADF,GAENA,QAAQ,CAAC,CAAD,CAAR,IAAeA,QAAQ,CAAC,CAAD,CAHb,GAIZD,QAAQ,GACNV,KAAK,CAACnM,IAAD,CAAL,CAAY,CAAZ,CADM,GAENA,IAVR;EAWA,SAAO2M,QAAQ,GAAMC,QAAN,SAAkBG,OAAlB,oBAAwCH,QAAxC,SAAoDG,OAAnE;EACD;EAEM,SAASC,YAAT,CAAsBC,WAAtB,EAAmC;EACxC;EACA;EACA,MAAMC,QAAQ,GAAG9I,IAAI,CAAC6I,WAAD,EAAc,CAC/B,SAD+B,EAE/B,KAF+B,EAG/B,MAH+B,EAI/B,OAJ+B,EAK/B,KAL+B,EAM/B,MAN+B,EAO/B,QAP+B,EAQ/B,QAR+B,EAS/B,cAT+B,EAU/B,QAV+B,CAAd,CAArB;EAAA,MAYEE,GAAG,GAAGzC,SAAS,CAACwC,QAAD,CAZjB;EAAA,MAaEE,YAAY,GAAG,4BAbjB;;EAcA,UAAQD,GAAR;EACE,SAAKzC,SAAS,CAAC2C,UAAD,CAAd;EACE,aAAO,UAAP;;EACF,SAAK3C,SAAS,CAAC2C,QAAD,CAAd;EACE,aAAO,aAAP;;EACF,SAAK3C,SAAS,CAAC2C,SAAD,CAAd;EACE,aAAO,cAAP;;EACF,SAAK3C,SAAS,CAAC2C,SAAD,CAAd;EACE,aAAO,oBAAP;;EACF,SAAK3C,SAAS,CAAC2C,WAAD,CAAd;EACE,aAAO,QAAP;;EACF,SAAK3C,SAAS,CAAC2C,iBAAD,CAAd;EACE,aAAO,WAAP;;EACF,SAAK3C,SAAS,CAAC2C,sBAAD,CAAd;EACE,aAAO,QAAP;;EACF,SAAK3C,SAAS,CAAC2C,qBAAD,CAAd;EACE,aAAO,QAAP;;EACF,SAAK3C,SAAS,CAAC2C,cAAD,CAAd;EACE,aAAO,OAAP;;EACF,SAAK3C,SAAS,CAAC2C,oBAAD,CAAd;EACE,aAAO,UAAP;;EACF,SAAK3C,SAAS,CAAC2C,yBAAD,CAAd;EACE,aAAO,OAAP;;EACF,SAAK3C,SAAS,CAAC2C,wBAAD,CAAd;EACE,aAAO,OAAP;;EACF,SAAK3C,SAAS,CAAC2C,cAAD,CAAd;EACE,aAAO,kBAAP;;EACF,SAAK3C,SAAS,CAAC2C,YAAD,CAAd;EACE,aAAO,qBAAP;;EACF,SAAK3C,SAAS,CAAC2C,aAAD,CAAd;EACE,aAAO,sBAAP;;EACF,SAAK3C,SAAS,CAAC2C,aAAD,CAAd;EACE,aAAOD,YAAP;;EACF,SAAK1C,SAAS,CAAC2C,2BAAD,CAAd;EACE,aAAO,qBAAP;;EACF,SAAK3C,SAAS,CAAC2C,yBAAD,CAAd;EACE,aAAO,wBAAP;;EACF,SAAK3C,SAAS,CAAC2C,yBAAD,CAAd;EACE,aAAO,yBAAP;;EACF,SAAK3C,SAAS,CAAC2C,0BAAD,CAAd;EACE,aAAO,yBAAP;;EACF,SAAK3C,SAAS,CAAC2C,0BAAD,CAAd;EACE,aAAO,+BAAP;;EACF;EACE,aAAOD,YAAP;EA5CJ;EA8CD;;EClOD,SAASE,eAAT,CAAyBC,MAAzB,EAAiCC,aAAjC,EAAgD;EAC9C,MAAIpN,CAAC,GAAG,EAAR;;EACA,uDAAoBmN,MAApB,wCAA4B;EAAA,QAAjBE,KAAiB;;EAC1B,QAAIA,KAAK,CAACC,OAAV,EAAmB;EACjBtN,MAAAA,CAAC,IAAIqN,KAAK,CAACE,GAAX;EACD,KAFD,MAEO;EACLvN,MAAAA,CAAC,IAAIoN,aAAa,CAACC,KAAK,CAACE,GAAP,CAAlB;EACD;EACF;;EACD,SAAOvN,CAAP;EACD;;EAED,IAAMwN,uBAAsB,GAAG;EAC7BC,EAAAA,CAAC,EAAER,UAD0B;EAE7BS,EAAAA,EAAE,EAAET,QAFyB;EAG7BU,EAAAA,GAAG,EAAEV,SAHwB;EAI7BW,EAAAA,IAAI,EAAEX,SAJuB;EAK7BY,EAAAA,CAAC,EAAEZ,WAL0B;EAM7Ba,EAAAA,EAAE,EAAEb,iBANyB;EAO7Bc,EAAAA,GAAG,EAAEd,sBAPwB;EAQ7Be,EAAAA,IAAI,EAAEf,qBARuB;EAS7BgB,EAAAA,CAAC,EAAEhB,cAT0B;EAU7BiB,EAAAA,EAAE,EAAEjB,oBAVyB;EAW7BkB,EAAAA,GAAG,EAAElB,yBAXwB;EAY7BmB,EAAAA,IAAI,EAAEnB,wBAZuB;EAa7B1H,EAAAA,CAAC,EAAE0H,cAb0B;EAc7BoB,EAAAA,EAAE,EAAEpB,YAdyB;EAe7BqB,EAAAA,GAAG,EAAErB,aAfwB;EAgB7BsB,EAAAA,IAAI,EAAEtB,aAhBuB;EAiB7BuB,EAAAA,CAAC,EAAEvB,2BAjB0B;EAkB7BwB,EAAAA,EAAE,EAAExB,yBAlByB;EAmB7ByB,EAAAA,GAAG,EAAEzB,0BAnBwB;EAoB7B0B,EAAAA,IAAI,EAAE1B;EApBuB,CAA/B;EAuBA;;;;MAIqB2B;cACZC,SAAP,gBAAcvH,MAAd,EAAsBwH,IAAtB,EAAiC;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAC/B,WAAO,IAAIF,SAAJ,CAActH,MAAd,EAAsBwH,IAAtB,CAAP;EACD;;cAEMC,cAAP,qBAAmBC,GAAnB,EAAwB;EACtB,QAAIC,OAAO,GAAG,IAAd;EAAA,QACEC,WAAW,GAAG,EADhB;EAAA,QAEEC,SAAS,GAAG,KAFd;EAGA,QAAMhC,MAAM,GAAG,EAAf;;EACA,SAAK,IAAIiC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,GAAG,CAACtL,MAAxB,EAAgC0L,CAAC,EAAjC,EAAqC;EACnC,UAAMC,CAAC,GAAGL,GAAG,CAACM,MAAJ,CAAWF,CAAX,CAAV;;EACA,UAAIC,CAAC,KAAK,GAAV,EAAe;EACb,YAAIH,WAAW,CAACxL,MAAZ,GAAqB,CAAzB,EAA4B;EAC1ByJ,UAAAA,MAAM,CAACoC,IAAP,CAAY;EAAEjC,YAAAA,OAAO,EAAE6B,SAAX;EAAsB5B,YAAAA,GAAG,EAAE2B;EAA3B,WAAZ;EACD;;EACDD,QAAAA,OAAO,GAAG,IAAV;EACAC,QAAAA,WAAW,GAAG,EAAd;EACAC,QAAAA,SAAS,GAAG,CAACA,SAAb;EACD,OAPD,MAOO,IAAIA,SAAJ,EAAe;EACpBD,QAAAA,WAAW,IAAIG,CAAf;EACD,OAFM,MAEA,IAAIA,CAAC,KAAKJ,OAAV,EAAmB;EACxBC,QAAAA,WAAW,IAAIG,CAAf;EACD,OAFM,MAEA;EACL,YAAIH,WAAW,CAACxL,MAAZ,GAAqB,CAAzB,EAA4B;EAC1ByJ,UAAAA,MAAM,CAACoC,IAAP,CAAY;EAAEjC,YAAAA,OAAO,EAAE,KAAX;EAAkBC,YAAAA,GAAG,EAAE2B;EAAvB,WAAZ;EACD;;EACDA,QAAAA,WAAW,GAAGG,CAAd;EACAJ,QAAAA,OAAO,GAAGI,CAAV;EACD;EACF;;EAED,QAAIH,WAAW,CAACxL,MAAZ,GAAqB,CAAzB,EAA4B;EAC1ByJ,MAAAA,MAAM,CAACoC,IAAP,CAAY;EAAEjC,QAAAA,OAAO,EAAE6B,SAAX;EAAsB5B,QAAAA,GAAG,EAAE2B;EAA3B,OAAZ;EACD;;EAED,WAAO/B,MAAP;EACD;;cAEMK,yBAAP,gCAA8BH,KAA9B,EAAqC;EACnC,WAAOG,uBAAsB,CAACH,KAAD,CAA7B;EACD;;EAED,qBAAY/F,MAAZ,EAAoBkI,UAApB,EAAgC;EAC9B,SAAKV,IAAL,GAAYU,UAAZ;EACA,SAAKC,GAAL,GAAWnI,MAAX;EACA,SAAKoI,SAAL,GAAiB,IAAjB;EACD;;;;WAEDC,0BAAA,iCAAwBpE,EAAxB,EAA4BuD,IAA5B,EAAkC;EAChC,QAAI,KAAKY,SAAL,KAAmB,IAAvB,EAA6B;EAC3B,WAAKA,SAAL,GAAiB,KAAKD,GAAL,CAASG,iBAAT,EAAjB;EACD;;EACD,QAAMC,EAAE,GAAG,KAAKH,SAAL,CAAeI,WAAf,CAA2BvE,EAA3B,EAA+BjJ,MAAM,CAACqF,MAAP,CAAc,EAAd,EAAkB,KAAKmH,IAAvB,EAA6BA,IAA7B,CAA/B,CAAX;EACA,WAAOe,EAAE,CAACzH,MAAH,EAAP;EACD;;WAED2H,iBAAA,wBAAexE,EAAf,EAAmBuD,IAAnB,EAA8B;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAC5B,QAAMe,EAAE,GAAG,KAAKJ,GAAL,CAASK,WAAT,CAAqBvE,EAArB,EAAyBjJ,MAAM,CAACqF,MAAP,CAAc,EAAd,EAAkB,KAAKmH,IAAvB,EAA6BA,IAA7B,CAAzB,CAAX;EACA,WAAOe,EAAE,CAACzH,MAAH,EAAP;EACD;;WAED4H,sBAAA,6BAAoBzE,EAApB,EAAwBuD,IAAxB,EAAmC;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACjC,QAAMe,EAAE,GAAG,KAAKJ,GAAL,CAASK,WAAT,CAAqBvE,EAArB,EAAyBjJ,MAAM,CAACqF,MAAP,CAAc,EAAd,EAAkB,KAAKmH,IAAvB,EAA6BA,IAA7B,CAAzB,CAAX;EACA,WAAOe,EAAE,CAAC9M,aAAH,EAAP;EACD;;WAEDkN,kBAAA,yBAAgB1E,EAAhB,EAAoBuD,IAApB,EAA+B;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAC7B,QAAMe,EAAE,GAAG,KAAKJ,GAAL,CAASK,WAAT,CAAqBvE,EAArB,EAAyBjJ,MAAM,CAACqF,MAAP,CAAc,EAAd,EAAkB,KAAKmH,IAAvB,EAA6BA,IAA7B,CAAzB,CAAX;EACA,WAAOe,EAAE,CAACI,eAAH,EAAP;EACD;;WAEDC,MAAA,aAAInQ,CAAJ,EAAOoQ,CAAP,EAAc;EAAA,QAAPA,CAAO;EAAPA,MAAAA,CAAO,GAAH,CAAG;EAAA;;EACZ;EACA,QAAI,KAAKrB,IAAL,CAAUsB,WAAd,EAA2B;EACzB,aAAOtL,QAAQ,CAAC/E,CAAD,EAAIoQ,CAAJ,CAAf;EACD;;EAED,QAAMrB,IAAI,GAAGxM,MAAM,CAACqF,MAAP,CAAc,EAAd,EAAkB,KAAKmH,IAAvB,CAAb;;EAEA,QAAIqB,CAAC,GAAG,CAAR,EAAW;EACTrB,MAAAA,IAAI,CAACuB,KAAL,GAAaF,CAAb;EACD;;EAED,WAAO,KAAKV,GAAL,CAASa,eAAT,CAAyBxB,IAAzB,EAA+B1G,MAA/B,CAAsCrI,CAAtC,CAAP;EACD;;WAEDwQ,2BAAA,kCAAyBhF,EAAzB,EAA6ByD,GAA7B,EAAkC;EAAA;;EAChC,QAAMwB,YAAY,GAAG,KAAKf,GAAL,CAASgB,WAAT,OAA2B,IAAhD;EAAA,QACEC,oBAAoB,GAClB,KAAKjB,GAAL,CAASkB,cAAT,IAA2B,KAAKlB,GAAL,CAASkB,cAAT,KAA4B,SAAvD,IAAoE7N,gBAAgB,EAFxF;EAAA,QAGEqC,MAAM,GAAG,SAATA,MAAS,CAAC2J,IAAD,EAAO8B,OAAP;EAAA,aAAmB,KAAI,CAACnB,GAAL,CAASmB,OAAT,CAAiBrF,EAAjB,EAAqBuD,IAArB,EAA2B8B,OAA3B,CAAnB;EAAA,KAHX;EAAA,QAIEhH,YAAY,GAAG,SAAfA,YAAe,CAAAkF,IAAI,EAAI;EACrB,UAAIvD,EAAE,CAACsF,aAAH,IAAoBtF,EAAE,CAAC1B,MAAH,KAAc,CAAlC,IAAuCiF,IAAI,CAACgC,MAAhD,EAAwD;EACtD,eAAO,GAAP;EACD;;EAED,aAAOvF,EAAE,CAACwF,OAAH,GAAaxF,EAAE,CAACyF,IAAH,CAAQpH,YAAR,CAAqB2B,EAAE,CAACnE,EAAxB,EAA4B0H,IAAI,CAAC1G,MAAjC,CAAb,GAAwD,EAA/D;EACD,KAVH;EAAA,QAWE6I,QAAQ,GAAG,SAAXA,QAAW;EAAA,aACTT,YAAY,GACRU,mBAAA,CAA4B3F,EAA5B,CADQ,GAERpG,MAAM,CAAC;EAAExE,QAAAA,IAAI,EAAE,SAAR;EAAmBQ,QAAAA,MAAM,EAAE;EAA3B,OAAD,EAAoC,WAApC,CAHD;EAAA,KAXb;EAAA,QAeEf,KAAK,GAAG,SAARA,KAAQ,CAACsD,MAAD,EAASyN,UAAT;EAAA,aACNX,YAAY,GACRU,gBAAA,CAAyB3F,EAAzB,EAA6B7H,MAA7B,CADQ,GAERyB,MAAM,CAACgM,UAAU,GAAG;EAAE/Q,QAAAA,KAAK,EAAEsD;EAAT,OAAH,GAAuB;EAAEtD,QAAAA,KAAK,EAAEsD,MAAT;EAAiBrD,QAAAA,GAAG,EAAE;EAAtB,OAAlC,EAAqE,OAArE,CAHJ;EAAA,KAfV;EAAA,QAmBEI,OAAO,GAAG,SAAVA,OAAU,CAACiD,MAAD,EAASyN,UAAT;EAAA,aACRX,YAAY,GACRU,kBAAA,CAA2B3F,EAA3B,EAA+B7H,MAA/B,CADQ,GAERyB,MAAM,CACJgM,UAAU,GAAG;EAAE1Q,QAAAA,OAAO,EAAEiD;EAAX,OAAH,GAAyB;EAAEjD,QAAAA,OAAO,EAAEiD,MAAX;EAAmBtD,QAAAA,KAAK,EAAE,MAA1B;EAAkCC,QAAAA,GAAG,EAAE;EAAvC,OAD/B,EAEJ,SAFI,CAHF;EAAA,KAnBZ;EAAA,QA0BE+Q,UAAU,GAAG,SAAbA,UAAa,CAAA/D,KAAK,EAAI;EACpB,UAAMmC,UAAU,GAAGZ,SAAS,CAACpB,sBAAV,CAAiCH,KAAjC,CAAnB;;EACA,UAAImC,UAAJ,EAAgB;EACd,eAAO,KAAI,CAACG,uBAAL,CAA6BpE,EAA7B,EAAiCiE,UAAjC,CAAP;EACD,OAFD,MAEO;EACL,eAAOnC,KAAP;EACD;EACF,KAjCH;EAAA,QAkCEgE,GAAG,GAAG,SAANA,GAAM,CAAA3N,MAAM;EAAA,aACV8M,YAAY,GAAGU,cAAA,CAAuB3F,EAAvB,EAA2B7H,MAA3B,CAAH,GAAwCyB,MAAM,CAAC;EAAEkM,QAAAA,GAAG,EAAE3N;EAAP,OAAD,EAAkB,KAAlB,CADhD;EAAA,KAlCd;EAAA,QAoCE0J,aAAa,GAAG,SAAhBA,aAAgB,CAAAC,KAAK,EAAI;EACvB;EACA,cAAQA,KAAR;EACE;EACA,aAAK,GAAL;EACE,iBAAO,KAAI,CAAC6C,GAAL,CAAS3E,EAAE,CAAC7E,WAAZ,CAAP;;EACF,aAAK,GAAL,CAJF;;EAME,aAAK,KAAL;EACE,iBAAO,KAAI,CAACwJ,GAAL,CAAS3E,EAAE,CAAC7E,WAAZ,EAAyB,CAAzB,CAAP;EACF;;EACA,aAAK,GAAL;EACE,iBAAO,KAAI,CAACwJ,GAAL,CAAS3E,EAAE,CAACzK,MAAZ,CAAP;;EACF,aAAK,IAAL;EACE,iBAAO,KAAI,CAACoP,GAAL,CAAS3E,EAAE,CAACzK,MAAZ,EAAoB,CAApB,CAAP;EACF;;EACA,aAAK,GAAL;EACE,iBAAO,KAAI,CAACoP,GAAL,CAAS3E,EAAE,CAAC3K,MAAZ,CAAP;;EACF,aAAK,IAAL;EACE,iBAAO,KAAI,CAACsP,GAAL,CAAS3E,EAAE,CAAC3K,MAAZ,EAAoB,CAApB,CAAP;EACF;;EACA,aAAK,GAAL;EACE,iBAAO,KAAI,CAACsP,GAAL,CAAS3E,EAAE,CAAC5K,IAAH,GAAU,EAAV,KAAiB,CAAjB,GAAqB,EAArB,GAA0B4K,EAAE,CAAC5K,IAAH,GAAU,EAA7C,CAAP;;EACF,aAAK,IAAL;EACE,iBAAO,KAAI,CAACuP,GAAL,CAAS3E,EAAE,CAAC5K,IAAH,GAAU,EAAV,KAAiB,CAAjB,GAAqB,EAArB,GAA0B4K,EAAE,CAAC5K,IAAH,GAAU,EAA7C,EAAiD,CAAjD,CAAP;;EACF,aAAK,GAAL;EACE,iBAAO,KAAI,CAACuP,GAAL,CAAS3E,EAAE,CAAC5K,IAAZ,CAAP;;EACF,aAAK,IAAL;EACE,iBAAO,KAAI,CAACuP,GAAL,CAAS3E,EAAE,CAAC5K,IAAZ,EAAkB,CAAlB,CAAP;EACF;;EACA,aAAK,GAAL;EACE;EACA,iBAAOiJ,YAAY,CAAC;EAAExB,YAAAA,MAAM,EAAE,QAAV;EAAoB0I,YAAAA,MAAM,EAAE,KAAI,CAAChC,IAAL,CAAUgC;EAAtC,WAAD,CAAnB;;EACF,aAAK,IAAL;EACE;EACA,iBAAOlH,YAAY,CAAC;EAAExB,YAAAA,MAAM,EAAE,OAAV;EAAmB0I,YAAAA,MAAM,EAAE,KAAI,CAAChC,IAAL,CAAUgC;EAArC,WAAD,CAAnB;;EACF,aAAK,KAAL;EACE;EACA,iBAAOlH,YAAY,CAAC;EAAExB,YAAAA,MAAM,EAAE,QAAV;EAAoB0I,YAAAA,MAAM,EAAE,KAAI,CAAChC,IAAL,CAAUgC;EAAtC,WAAD,CAAnB;;EACF,aAAK,MAAL;EACE;EACA,iBAAOvF,EAAE,CAACyF,IAAH,CAAQM,UAAR,CAAmB/F,EAAE,CAACnE,EAAtB,EAA0B;EAAEgB,YAAAA,MAAM,EAAE,OAAV;EAAmBd,YAAAA,MAAM,EAAE,KAAI,CAACmI,GAAL,CAASnI;EAApC,WAA1B,CAAP;;EACF,aAAK,OAAL;EACE;EACA,iBAAOiE,EAAE,CAACyF,IAAH,CAAQM,UAAR,CAAmB/F,EAAE,CAACnE,EAAtB,EAA0B;EAAEgB,YAAAA,MAAM,EAAE,MAAV;EAAkBd,YAAAA,MAAM,EAAE,KAAI,CAACmI,GAAL,CAASnI;EAAnC,WAA1B,CAAP;EACF;;EACA,aAAK,GAAL;EACE;EACA,iBAAOiE,EAAE,CAACgG,QAAV;EACF;;EACA,aAAK,GAAL;EACE,iBAAON,QAAQ,EAAf;EACF;;EACA,aAAK,GAAL;EACE,iBAAOP,oBAAoB,GAAGvL,MAAM,CAAC;EAAE9E,YAAAA,GAAG,EAAE;EAAP,WAAD,EAAqB,KAArB,CAAT,GAAuC,KAAI,CAAC6P,GAAL,CAAS3E,EAAE,CAAClL,GAAZ,CAAlE;;EACF,aAAK,IAAL;EACE,iBAAOqQ,oBAAoB,GAAGvL,MAAM,CAAC;EAAE9E,YAAAA,GAAG,EAAE;EAAP,WAAD,EAAqB,KAArB,CAAT,GAAuC,KAAI,CAAC6P,GAAL,CAAS3E,EAAE,CAAClL,GAAZ,EAAiB,CAAjB,CAAlE;EACF;;EACA,aAAK,GAAL;EACE;EACA,iBAAO,KAAI,CAAC6P,GAAL,CAAS3E,EAAE,CAAC9K,OAAZ,CAAP;;EACF,aAAK,KAAL;EACE;EACA,iBAAOA,OAAO,CAAC,OAAD,EAAU,IAAV,CAAd;;EACF,aAAK,MAAL;EACE;EACA,iBAAOA,OAAO,CAAC,MAAD,EAAS,IAAT,CAAd;;EACF,aAAK,OAAL;EACE;EACA,iBAAOA,OAAO,CAAC,QAAD,EAAW,IAAX,CAAd;EACF;;EACA,aAAK,GAAL;EACE;EACA,iBAAO,KAAI,CAACyP,GAAL,CAAS3E,EAAE,CAAC9K,OAAZ,CAAP;;EACF,aAAK,KAAL;EACE;EACA,iBAAOA,OAAO,CAAC,OAAD,EAAU,KAAV,CAAd;;EACF,aAAK,MAAL;EACE;EACA,iBAAOA,OAAO,CAAC,MAAD,EAAS,KAAT,CAAd;;EACF,aAAK,OAAL;EACE;EACA,iBAAOA,OAAO,CAAC,QAAD,EAAW,KAAX,CAAd;EACF;;EACA,aAAK,GAAL;EACE;EACA,iBAAOiQ,oBAAoB,GACvBvL,MAAM,CAAC;EAAE/E,YAAAA,KAAK,EAAE,SAAT;EAAoBC,YAAAA,GAAG,EAAE;EAAzB,WAAD,EAAuC,OAAvC,CADiB,GAEvB,KAAI,CAAC6P,GAAL,CAAS3E,EAAE,CAACnL,KAAZ,CAFJ;;EAGF,aAAK,IAAL;EACE;EACA,iBAAOsQ,oBAAoB,GACvBvL,MAAM,CAAC;EAAE/E,YAAAA,KAAK,EAAE,SAAT;EAAoBC,YAAAA,GAAG,EAAE;EAAzB,WAAD,EAAuC,OAAvC,CADiB,GAEvB,KAAI,CAAC6P,GAAL,CAAS3E,EAAE,CAACnL,KAAZ,EAAmB,CAAnB,CAFJ;;EAGF,aAAK,KAAL;EACE;EACA,iBAAOA,KAAK,CAAC,OAAD,EAAU,IAAV,CAAZ;;EACF,aAAK,MAAL;EACE;EACA,iBAAOA,KAAK,CAAC,MAAD,EAAS,IAAT,CAAZ;;EACF,aAAK,OAAL;EACE;EACA,iBAAOA,KAAK,CAAC,QAAD,EAAW,IAAX,CAAZ;EACF;;EACA,aAAK,GAAL;EACE;EACA,iBAAOsQ,oBAAoB,GACvBvL,MAAM,CAAC;EAAE/E,YAAAA,KAAK,EAAE;EAAT,WAAD,EAAuB,OAAvB,CADiB,GAEvB,KAAI,CAAC8P,GAAL,CAAS3E,EAAE,CAACnL,KAAZ,CAFJ;;EAGF,aAAK,IAAL;EACE;EACA,iBAAOsQ,oBAAoB,GACvBvL,MAAM,CAAC;EAAE/E,YAAAA,KAAK,EAAE;EAAT,WAAD,EAAuB,OAAvB,CADiB,GAEvB,KAAI,CAAC8P,GAAL,CAAS3E,EAAE,CAACnL,KAAZ,EAAmB,CAAnB,CAFJ;;EAGF,aAAK,KAAL;EACE;EACA,iBAAOA,KAAK,CAAC,OAAD,EAAU,KAAV,CAAZ;;EACF,aAAK,MAAL;EACE;EACA,iBAAOA,KAAK,CAAC,MAAD,EAAS,KAAT,CAAZ;;EACF,aAAK,OAAL;EACE;EACA,iBAAOA,KAAK,CAAC,QAAD,EAAW,KAAX,CAAZ;EACF;;EACA,aAAK,GAAL;EACE;EACA,iBAAOsQ,oBAAoB,GAAGvL,MAAM,CAAC;EAAEhF,YAAAA,IAAI,EAAE;EAAR,WAAD,EAAsB,MAAtB,CAAT,GAAyC,KAAI,CAAC+P,GAAL,CAAS3E,EAAE,CAACpL,IAAZ,CAApE;;EACF,aAAK,IAAL;EACE;EACA,iBAAOuQ,oBAAoB,GACvBvL,MAAM,CAAC;EAAEhF,YAAAA,IAAI,EAAE;EAAR,WAAD,EAAsB,MAAtB,CADiB,GAEvB,KAAI,CAAC+P,GAAL,CAAS3E,EAAE,CAACpL,IAAH,CAAQqC,QAAR,GAAmByC,KAAnB,CAAyB,CAAC,CAA1B,CAAT,EAAuC,CAAvC,CAFJ;;EAGF,aAAK,MAAL;EACE;EACA,iBAAOyL,oBAAoB,GACvBvL,MAAM,CAAC;EAAEhF,YAAAA,IAAI,EAAE;EAAR,WAAD,EAAsB,MAAtB,CADiB,GAEvB,KAAI,CAAC+P,GAAL,CAAS3E,EAAE,CAACpL,IAAZ,EAAkB,CAAlB,CAFJ;;EAGF,aAAK,QAAL;EACE;EACA,iBAAOuQ,oBAAoB,GACvBvL,MAAM,CAAC;EAAEhF,YAAAA,IAAI,EAAE;EAAR,WAAD,EAAsB,MAAtB,CADiB,GAEvB,KAAI,CAAC+P,GAAL,CAAS3E,EAAE,CAACpL,IAAZ,EAAkB,CAAlB,CAFJ;EAGF;;EACA,aAAK,GAAL;EACE;EACA,iBAAOkR,GAAG,CAAC,OAAD,CAAV;;EACF,aAAK,IAAL;EACE;EACA,iBAAOA,GAAG,CAAC,MAAD,CAAV;;EACF,aAAK,OAAL;EACE,iBAAOA,GAAG,CAAC,QAAD,CAAV;;EACF,aAAK,IAAL;EACE,iBAAO,KAAI,CAACnB,GAAL,CAAS3E,EAAE,CAACzE,QAAH,CAAYtE,QAAZ,GAAuByC,KAAvB,CAA6B,CAAC,CAA9B,CAAT,EAA2C,CAA3C,CAAP;;EACF,aAAK,MAAL;EACE,iBAAO,KAAI,CAACiL,GAAL,CAAS3E,EAAE,CAACzE,QAAZ,EAAsB,CAAtB,CAAP;;EACF,aAAK,GAAL;EACE,iBAAO,KAAI,CAACoJ,GAAL,CAAS3E,EAAE,CAACiG,UAAZ,CAAP;;EACF,aAAK,IAAL;EACE,iBAAO,KAAI,CAACtB,GAAL,CAAS3E,EAAE,CAACiG,UAAZ,EAAwB,CAAxB,CAAP;;EACF,aAAK,GAAL;EACE,iBAAO,KAAI,CAACtB,GAAL,CAAS3E,EAAE,CAACkG,OAAZ,CAAP;;EACF,aAAK,KAAL;EACE,iBAAO,KAAI,CAACvB,GAAL,CAAS3E,EAAE,CAACkG,OAAZ,EAAqB,CAArB,CAAP;;EACF,aAAK,GAAL;EACE;EACA,iBAAO,KAAI,CAACvB,GAAL,CAAS3E,EAAE,CAACmG,OAAZ,CAAP;;EACF,aAAK,IAAL;EACE;EACA,iBAAO,KAAI,CAACxB,GAAL,CAAS3E,EAAE,CAACmG,OAAZ,EAAqB,CAArB,CAAP;;EACF,aAAK,GAAL;EACE,iBAAO,KAAI,CAACxB,GAAL,CAAStL,IAAI,CAACC,KAAL,CAAW0G,EAAE,CAACnE,EAAH,GAAQ,IAAnB,CAAT,CAAP;;EACF,aAAK,GAAL;EACE,iBAAO,KAAI,CAAC8I,GAAL,CAAS3E,EAAE,CAACnE,EAAZ,CAAP;;EACF;EACE,iBAAOgK,UAAU,CAAC/D,KAAD,CAAjB;EA5KJ;EA8KD,KApNH;;EAsNA,WAAOH,eAAe,CAAC0B,SAAS,CAACG,WAAV,CAAsBC,GAAtB,CAAD,EAA6B5B,aAA7B,CAAtB;EACD;;WAEDuE,2BAAA,kCAAyBC,GAAzB,EAA8B5C,GAA9B,EAAmC;EAAA;;EACjC,QAAM6C,YAAY,GAAG,SAAfA,YAAe,CAAAxE,KAAK,EAAI;EAC1B,cAAQA,KAAK,CAAC,CAAD,CAAb;EACE,aAAK,GAAL;EACE,iBAAO,aAAP;;EACF,aAAK,GAAL;EACE,iBAAO,QAAP;;EACF,aAAK,GAAL;EACE,iBAAO,QAAP;;EACF,aAAK,GAAL;EACE,iBAAO,MAAP;;EACF,aAAK,GAAL;EACE,iBAAO,KAAP;;EACF,aAAK,GAAL;EACE,iBAAO,OAAP;;EACF,aAAK,GAAL;EACE,iBAAO,MAAP;;EACF;EACE,iBAAO,IAAP;EAhBJ;EAkBD,KAnBH;EAAA,QAoBED,aAAa,GAAG,SAAhBA,aAAgB,CAAA0E,MAAM;EAAA,aAAI,UAAAzE,KAAK,EAAI;EACjC,YAAM0E,MAAM,GAAGF,YAAY,CAACxE,KAAD,CAA3B;;EACA,YAAI0E,MAAJ,EAAY;EACV,iBAAO,MAAI,CAAC7B,GAAL,CAAS4B,MAAM,CAACE,GAAP,CAAWD,MAAX,CAAT,EAA6B1E,KAAK,CAAC3J,MAAnC,CAAP;EACD,SAFD,MAEO;EACL,iBAAO2J,KAAP;EACD;EACF,OAPqB;EAAA,KApBxB;EAAA,QA4BE4E,MAAM,GAAGrD,SAAS,CAACG,WAAV,CAAsBC,GAAtB,CA5BX;EAAA,QA6BEkD,UAAU,GAAGD,MAAM,CAACrO,MAAP,CACX,UAACuO,KAAD;EAAA,UAAU7E,OAAV,QAAUA,OAAV;EAAA,UAAmBC,GAAnB,QAAmBA,GAAnB;EAAA,aAA8BD,OAAO,GAAG6E,KAAH,GAAWA,KAAK,CAACC,MAAN,CAAa7E,GAAb,CAAhD;EAAA,KADW,EAEX,EAFW,CA7Bf;EAAA,QAiCE8E,SAAS,GAAGT,GAAG,CAACU,OAAJ,OAAAV,GAAG,EAAYM,UAAU,CAACK,GAAX,CAAeV,YAAf,EAA6BW,MAA7B,CAAoC,UAAA3E,CAAC;EAAA,aAAIA,CAAJ;EAAA,KAArC,CAAZ,CAjCjB;;EAkCA,WAAOX,eAAe,CAAC+E,MAAD,EAAS7E,aAAa,CAACiF,SAAD,CAAtB,CAAtB;EACD;;;;;MChYkBI;EACnB,mBAAYnT,MAAZ,EAAoBoT,WAApB,EAAiC;EAC/B,SAAKpT,MAAL,GAAcA,MAAd;EACA,SAAKoT,WAAL,GAAmBA,WAAnB;EACD;;;;WAEDnT,YAAA,qBAAY;EACV,QAAI,KAAKmT,WAAT,EAAsB;EACpB,aAAU,KAAKpT,MAAf,UAA0B,KAAKoT,WAA/B;EACD,KAFD,MAEO;EACL,aAAO,KAAKpT,MAAZ;EACD;EACF;;;;;ECTH;;;;MAGqBqT;;;;;EA4BnB;;;;;;;;;WASArB,aAAA,oBAAWlK,EAAX,EAAe0H,IAAf,EAAqB;EACnB,UAAM,IAAIhP,mBAAJ,EAAN;EACD;EAED;;;;;;;;;;WAQA8J,eAAA,sBAAaxC,EAAb,EAAiBgB,MAAjB,EAAyB;EACvB,UAAM,IAAItI,mBAAJ,EAAN;EACD;EAED;;;;;;;;WAMA+J,SAAA,gBAAOzC,EAAP,EAAW;EACT,UAAM,IAAItH,mBAAJ,EAAN;EACD;EAED;;;;;;;;WAMA8S,SAAA,gBAAOC,SAAP,EAAkB;EAChB,UAAM,IAAI/S,mBAAJ,EAAN;EACD;EAED;;;;;;;;;;EAxEA;;;;;0BAKW;EACT,YAAM,IAAIA,mBAAJ,EAAN;EACD;EAED;;;;;;;;0BAKW;EACT,YAAM,IAAIA,mBAAJ,EAAN;EACD;EAED;;;;;;;;0BAKgB;EACd,YAAM,IAAIA,mBAAJ,EAAN;EACD;;;0BAoDa;EACZ,YAAM,IAAIA,mBAAJ,EAAN;EACD;;;;;;ECnFH,IAAIgT,SAAS,GAAG,IAAhB;EAEA;;;;;MAIqBC;;;;;;;;;EA6BnB;WACAzB,aAAA,oBAAWlK,EAAX,QAAmC;EAAA,QAAlBgB,MAAkB,QAAlBA,MAAkB;EAAA,QAAVd,MAAU,QAAVA,MAAU;EACjC,WAAOH,aAAa,CAACC,EAAD,EAAKgB,MAAL,EAAad,MAAb,CAApB;EACD;EAED;;;WACAsC,eAAA,wBAAaxC,EAAb,EAAiBgB,MAAjB,EAAyB;EACvB,WAAOwB,YAAY,CAAC,KAAKC,MAAL,CAAYzC,EAAZ,CAAD,EAAkBgB,MAAlB,CAAnB;EACD;EAED;;;WACAyB,SAAA,gBAAOzC,EAAP,EAAW;EACT,WAAO,CAAC,IAAIZ,IAAJ,CAASY,EAAT,EAAa4L,iBAAb,EAAR;EACD;EAED;;;WACAJ,SAAA,gBAAOC,SAAP,EAAkB;EAChB,WAAOA,SAAS,CAAC7K,IAAV,KAAmB,OAA1B;EACD;EAED;;;;;;EArCA;0BACW;EACT,aAAO,OAAP;EACD;EAED;;;;0BACW;EACT,UAAItF,OAAO,EAAX,EAAe;EACb,eAAO,IAAIC,IAAI,CAACC,cAAT,GAA0BqN,eAA1B,GAA4C1I,QAAnD;EACD,OAFD,MAEO,OAAO,OAAP;EACR;EAED;;;;0BACgB;EACd,aAAO,KAAP;EACD;;;0BAuBa;EACZ,aAAO,IAAP;EACD;;;;EAnDD;;;;0BAIsB;EACpB,UAAIuL,SAAS,KAAK,IAAlB,EAAwB;EACtBA,QAAAA,SAAS,GAAG,IAAIC,SAAJ,EAAZ;EACD;;EACD,aAAOD,SAAP;EACD;;;;IAVoCH;;ECNvC,IAAMM,aAAa,GAAGC,MAAM,OAAK7I,SAAS,CAAC8I,MAAf,OAA5B;EAEA,IAAIC,QAAQ,GAAG,EAAf;;EACA,SAASC,OAAT,CAAiBrC,IAAjB,EAAuB;EACrB,MAAI,CAACoC,QAAQ,CAACpC,IAAD,CAAb,EAAqB;EACnBoC,IAAAA,QAAQ,CAACpC,IAAD,CAAR,GAAiB,IAAIrO,IAAI,CAACC,cAAT,CAAwB,OAAxB,EAAiC;EAChDzB,MAAAA,MAAM,EAAE,KADwC;EAEhDoG,MAAAA,QAAQ,EAAEyJ,IAFsC;EAGhD7Q,MAAAA,IAAI,EAAE,SAH0C;EAIhDC,MAAAA,KAAK,EAAE,SAJyC;EAKhDC,MAAAA,GAAG,EAAE,SAL2C;EAMhDM,MAAAA,IAAI,EAAE,SAN0C;EAOhDC,MAAAA,MAAM,EAAE,SAPwC;EAQhDE,MAAAA,MAAM,EAAE;EARwC,KAAjC,CAAjB;EAUD;;EACD,SAAOsS,QAAQ,CAACpC,IAAD,CAAf;EACD;;EAED,IAAMsC,SAAS,GAAG;EAChBnT,EAAAA,IAAI,EAAE,CADU;EAEhBC,EAAAA,KAAK,EAAE,CAFS;EAGhBC,EAAAA,GAAG,EAAE,CAHW;EAIhBM,EAAAA,IAAI,EAAE,CAJU;EAKhBC,EAAAA,MAAM,EAAE,CALQ;EAMhBE,EAAAA,MAAM,EAAE;EANQ,CAAlB;;EASA,SAASyS,WAAT,CAAqBC,GAArB,EAA0BhM,IAA1B,EAAgC;EACxB,MAAAiM,SAAS,GAAGD,GAAG,CAACpL,MAAJ,CAAWZ,IAAX,EAAiBiB,OAAjB,CAAyB,SAAzB,EAAoC,EAApC,CAAZ;EAAA,MACJZ,MADI,GACK,0CAA0C6L,IAA1C,CAA+CD,SAA/C,CADL;EAAA,MAEDE,MAFC,GAE+C9L,MAF/C;EAAA,MAEO+L,IAFP,GAE+C/L,MAF/C;EAAA,MAEagM,KAFb,GAE+ChM,MAF/C;EAAA,MAEoBiM,KAFpB,GAE+CjM,MAF/C;EAAA,MAE2BkM,OAF3B,GAE+ClM,MAF/C;EAAA,MAEoCmM,OAFpC,GAE+CnM,MAF/C;EAGN,SAAO,CAACgM,KAAD,EAAQF,MAAR,EAAgBC,IAAhB,EAAsBE,KAAtB,EAA6BC,OAA7B,EAAsCC,OAAtC,CAAP;EACD;;EAED,SAASC,WAAT,CAAqBT,GAArB,EAA0BhM,IAA1B,EAAgC;EAC9B,MAAMiM,SAAS,GAAGD,GAAG,CAACzQ,aAAJ,CAAkByE,IAAlB,CAAlB;EAAA,MACE0M,MAAM,GAAG,EADX;;EAEA,OAAK,IAAI9E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqE,SAAS,CAAC/P,MAA9B,EAAsC0L,CAAC,EAAvC,EAA2C;EAAA,uBACjBqE,SAAS,CAACrE,CAAD,CADQ;EAAA,QACjCpH,IADiC,gBACjCA,IADiC;EAAA,QAC3BE,KAD2B,gBAC3BA,KAD2B;EAAA,QAEvCiM,GAFuC,GAEjCb,SAAS,CAACtL,IAAD,CAFwB;;EAIzC,QAAI,CAAChG,WAAW,CAACmS,GAAD,CAAhB,EAAuB;EACrBD,MAAAA,MAAM,CAACC,GAAD,CAAN,GAAc/O,QAAQ,CAAC8C,KAAD,EAAQ,EAAR,CAAtB;EACD;EACF;;EACD,SAAOgM,MAAP;EACD;;EAED,IAAIE,aAAa,GAAG,EAApB;EACA;;;;;MAIqBC;;;EACnB;;;;aAIOxF,SAAP,gBAAcyF,IAAd,EAAoB;EAClB,QAAI,CAACF,aAAa,CAACE,IAAD,CAAlB,EAA0B;EACxBF,MAAAA,aAAa,CAACE,IAAD,CAAb,GAAsB,IAAID,QAAJ,CAAaC,IAAb,CAAtB;EACD;;EACD,WAAOF,aAAa,CAACE,IAAD,CAApB;EACD;EAED;;;;;;aAIOC,aAAP,sBAAoB;EAClBH,IAAAA,aAAa,GAAG,EAAhB;EACAhB,IAAAA,QAAQ,GAAG,EAAX;EACD;EAED;;;;;;;;;;aAQOoB,mBAAP,0BAAwBxU,CAAxB,EAA2B;EACzB,WAAO,CAAC,EAAEA,CAAC,IAAIA,CAAC,CAACyU,KAAF,CAAQxB,aAAR,CAAP,CAAR;EACD;EAED;;;;;;;;;;aAQOyB,cAAP,qBAAmB1D,IAAnB,EAAyB;EACvB,QAAI;EACF,UAAIrO,IAAI,CAACC,cAAT,CAAwB,OAAxB,EAAiC;EAAE2E,QAAAA,QAAQ,EAAEyJ;EAAZ,OAAjC,EAAqD5I,MAArD;EACA,aAAO,IAAP;EACD,KAHD,CAGE,OAAOvF,CAAP,EAAU;EACV,aAAO,KAAP;EACD;EACF;;EAGD;;;aACO8R,iBAAP,wBAAsBC,SAAtB,EAAiC;EAC/B,QAAIA,SAAJ,EAAe;EACb,UAAMH,KAAK,GAAGG,SAAS,CAACH,KAAV,CAAgB,0BAAhB,CAAd;;EACA,UAAIA,KAAJ,EAAW;EACT,eAAO,CAAC,EAAD,GAAMrP,QAAQ,CAACqP,KAAK,CAAC,CAAD,CAAN,CAArB;EACD;EACF;;EACD,WAAO,IAAP;EACD;;EAED,oBAAYH,IAAZ,EAAkB;EAAA;;EAChB;EACA;;EACA,UAAK/C,QAAL,GAAgB+C,IAAhB;EACA;;EACA,UAAKO,KAAL,GAAaR,QAAQ,CAACK,WAAT,CAAqBJ,IAArB,CAAb;EALgB;EAMjB;EAED;;;;;EAeA;WACAhD,aAAA,oBAAWlK,EAAX,QAAmC;EAAA,QAAlBgB,MAAkB,QAAlBA,MAAkB;EAAA,QAAVd,MAAU,QAAVA,MAAU;EACjC,WAAOH,aAAa,CAACC,EAAD,EAAKgB,MAAL,EAAad,MAAb,EAAqB,KAAKgN,IAA1B,CAApB;EACD;EAED;;;WACA1K,eAAA,wBAAaxC,EAAb,EAAiBgB,MAAjB,EAAyB;EACvB,WAAOwB,YAAY,CAAC,KAAKC,MAAL,CAAYzC,EAAZ,CAAD,EAAkBgB,MAAlB,CAAnB;EACD;EAED;;;WACAyB,SAAA,gBAAOzC,EAAP,EAAW;EACH,QAAAI,IAAI,GAAG,IAAIhB,IAAJ,CAASY,EAAT,CAAP;EAAA,QACJoM,GADI,GACEH,OAAO,CAAC,KAAKiB,IAAN,CADT;EAAA,gBAEuCd,GAAG,CAACzQ,aAAJ,GACvCkR,WAAW,CAACT,GAAD,EAAMhM,IAAN,CAD4B,GAEvC+L,WAAW,CAACC,GAAD,EAAMhM,IAAN,CAJX;EAAA,QAEHrH,IAFG;EAAA,QAEGC,KAFH;EAAA,QAEUC,GAFV;EAAA,QAEeM,IAFf;EAAA,QAEqBC,MAFrB;EAAA,QAE6BE,MAF7B;EAAA,QAMJgU,YANI,GAMWnU,IAAI,KAAK,EAAT,GAAc,CAAd,GAAkBA,IAN7B;;EAQN,QAAMoU,KAAK,GAAGzO,YAAY,CAAC;EACzBnG,MAAAA,IAAI,EAAJA,IADyB;EAEzBC,MAAAA,KAAK,EAALA,KAFyB;EAGzBC,MAAAA,GAAG,EAAHA,GAHyB;EAIzBM,MAAAA,IAAI,EAAEmU,YAJmB;EAKzBlU,MAAAA,MAAM,EAANA,MALyB;EAMzBE,MAAAA,MAAM,EAANA,MANyB;EAOzB4F,MAAAA,WAAW,EAAE;EAPY,KAAD,CAA1B;EAUA,QAAIsO,IAAI,GAAG,CAACxN,IAAZ;EACA,QAAMyN,IAAI,GAAGD,IAAI,GAAG,IAApB;EACAA,IAAAA,IAAI,IAAIC,IAAI,IAAI,CAAR,GAAYA,IAAZ,GAAmB,OAAOA,IAAlC;EACA,WAAO,CAACF,KAAK,GAAGC,IAAT,KAAkB,KAAK,IAAvB,CAAP;EACD;EAED;;;WACApC,SAAA,gBAAOC,SAAP,EAAkB;EAChB,WAAOA,SAAS,CAAC7K,IAAV,KAAmB,MAAnB,IAA6B6K,SAAS,CAACyB,IAAV,KAAmB,KAAKA,IAA5D;EACD;EAED;;;;;0BAvDW;EACT,aAAO,MAAP;EACD;EAED;;;;0BACW;EACT,aAAO,KAAK/C,QAAZ;EACD;EAED;;;;0BACgB;EACd,aAAO,KAAP;EACD;;;0BA4Ca;EACZ,aAAO,KAAKsD,KAAZ;EACD;;;;IAjImClC;;ECtDtC,IAAIG,WAAS,GAAG,IAAhB;EAEA;;;;;MAIqBoC;;;EAYnB;;;;;oBAKOC,WAAP,kBAAgBtL,MAAhB,EAAwB;EACtB,WAAOA,MAAM,KAAK,CAAX,GAAeqL,eAAe,CAACE,WAA/B,GAA6C,IAAIF,eAAJ,CAAoBrL,MAApB,CAApD;EACD;EAED;;;;;;;;;;oBAQOwL,iBAAP,wBAAsBrV,CAAtB,EAAyB;EACvB,QAAIA,CAAJ,EAAO;EACL,UAAMsV,CAAC,GAAGtV,CAAC,CAACyU,KAAF,CAAQ,uCAAR,CAAV;;EACA,UAAIa,CAAJ,EAAO;EACL,eAAO,IAAIJ,eAAJ,CAAoBxM,YAAY,CAAC4M,CAAC,CAAC,CAAD,CAAF,EAAOA,CAAC,CAAC,CAAD,CAAR,CAAhC,CAAP;EACD;EACF;;EACD,WAAO,IAAP;EACD;;;;;EApCD;;;;0BAIyB;EACvB,UAAIxC,WAAS,KAAK,IAAlB,EAAwB;EACtBA,QAAAA,WAAS,GAAG,IAAIoC,eAAJ,CAAoB,CAApB,CAAZ;EACD;;EACD,aAAOpC,WAAP;EACD;;;EA6BD,2BAAYjJ,MAAZ,EAAoB;EAAA;;EAClB;EACA;;EACA,UAAK0L,KAAL,GAAa1L,MAAb;EAHkB;EAInB;EAED;;;;;EAUA;WACAyH,aAAA,sBAAa;EACX,WAAO,KAAKgD,IAAZ;EACD;EAED;;;WACA1K,eAAA,wBAAaxC,EAAb,EAAiBgB,MAAjB,EAAyB;EACvB,WAAOwB,YAAY,CAAC,KAAK2L,KAAN,EAAanN,MAAb,CAAnB;EACD;EAED;;;EAKA;WACAyB,SAAA,kBAAS;EACP,WAAO,KAAK0L,KAAZ;EACD;EAED;;;WACA3C,SAAA,gBAAOC,SAAP,EAAkB;EAChB,WAAOA,SAAS,CAAC7K,IAAV,KAAmB,OAAnB,IAA8B6K,SAAS,CAAC0C,KAAV,KAAoB,KAAKA,KAA9D;EACD;EAED;;;;;0BAlCW;EACT,aAAO,OAAP;EACD;EAED;;;;0BACW;EACT,aAAO,KAAKA,KAAL,KAAe,CAAf,GAAmB,KAAnB,WAAiC3L,YAAY,CAAC,KAAK2L,KAAN,EAAa,QAAb,CAApD;EACD;;;0BAae;EACd,aAAO,IAAP;EACD;;;0BAaa;EACZ,aAAO,IAAP;EACD;;;;IAnF0C5C;;ECP7C;;;;;MAIqB6C;;;EACnB,uBAAYjE,QAAZ,EAAsB;EAAA;;EACpB;EACA;;EACA,UAAKA,QAAL,GAAgBA,QAAhB;EAHoB;EAIrB;EAED;;;;;EAeA;WACAD,aAAA,sBAAa;EACX,WAAO,IAAP;EACD;EAED;;;WACA1H,eAAA,wBAAe;EACb,WAAO,EAAP;EACD;EAED;;;WACAC,SAAA,kBAAS;EACP,WAAO4L,GAAP;EACD;EAED;;;WACA7C,SAAA,kBAAS;EACP,WAAO,KAAP;EACD;EAED;;;;;0BAlCW;EACT,aAAO,SAAP;EACD;EAED;;;;0BACW;EACT,aAAO,KAAKrB,QAAZ;EACD;EAED;;;;0BACgB;EACd,aAAO,KAAP;EACD;;;0BAuBa;EACZ,aAAO,KAAP;EACD;;;;IA7CsCoB;;ECNzC;;;EAWO,SAAS+C,aAAT,CAAuB3Q,KAAvB,EAA8B4Q,WAA9B,EAA2C;EAChD,MAAI9L,MAAJ;;EACA,MAAI7H,WAAW,CAAC+C,KAAD,CAAX,IAAsBA,KAAK,KAAK,IAApC,EAA0C;EACxC,WAAO4Q,WAAP;EACD,GAFD,MAEO,IAAI5Q,KAAK,YAAY4N,IAArB,EAA2B;EAChC,WAAO5N,KAAP;EACD,GAFM,MAEA,IAAI3C,QAAQ,CAAC2C,KAAD,CAAZ,EAAqB;EAC1B,QAAM6Q,OAAO,GAAG7Q,KAAK,CAACkD,WAAN,EAAhB;EACA,QAAI2N,OAAO,KAAK,OAAhB,EAAyB,OAAOD,WAAP,CAAzB,KACK,IAAIC,OAAO,KAAK,KAAZ,IAAqBA,OAAO,KAAK,KAArC,EAA4C,OAAOV,eAAe,CAACE,WAAvB,CAA5C,KACA,IAAI,CAACvL,MAAM,GAAGwK,QAAQ,CAACM,cAAT,CAAwB5P,KAAxB,CAAV,KAA6C,IAAjD,EAAuD;EAC1D;EACA,aAAOmQ,eAAe,CAACC,QAAhB,CAAyBtL,MAAzB,CAAP;EACD,KAHI,MAGE,IAAIwK,QAAQ,CAACG,gBAAT,CAA0BoB,OAA1B,CAAJ,EAAwC,OAAOvB,QAAQ,CAACxF,MAAT,CAAgB9J,KAAhB,CAAP,CAAxC,KACF,OAAOmQ,eAAe,CAACG,cAAhB,CAA+BO,OAA/B,KAA2C,IAAIJ,WAAJ,CAAgBzQ,KAAhB,CAAlD;EACN,GATM,MASA,IAAI7C,QAAQ,CAAC6C,KAAD,CAAZ,EAAqB;EAC1B,WAAOmQ,eAAe,CAACC,QAAhB,CAAyBpQ,KAAzB,CAAP;EACD,GAFM,MAEA,IAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,CAAC8E,MAAnC,IAA6C,OAAO9E,KAAK,CAAC8E,MAAb,KAAwB,QAAzE,EAAmF;EACxF;EACA;EACA,WAAO9E,KAAP;EACD,GAJM,MAIA;EACL,WAAO,IAAIyQ,WAAJ,CAAgBzQ,KAAhB,CAAP;EACD;EACF;;EC7BD,IAAI8Q,GAAG,GAAG;EAAA,SAAMrP,IAAI,CAACqP,GAAL,EAAN;EAAA,CAAV;EAAA,IACEF,WAAW,GAAG,IADhB;EAAA;EAEEG,aAAa,GAAG,IAFlB;EAAA,IAGEC,sBAAsB,GAAG,IAH3B;EAAA,IAIEC,qBAAqB,GAAG,IAJ1B;EAAA,IAKEC,cAAc,GAAG,KALnB;EAOA;;;;;MAGqBC;;;EAgHnB;;;;aAIOC,cAAP,uBAAqB;EACnBC,IAAAA,MAAM,CAAC7B,UAAP;EACAF,IAAAA,QAAQ,CAACE,UAAT;EACD;;;;;EAtHD;;;;0BAIiB;EACf,aAAOsB,GAAP;EACD;EAED;;;;;;;;wBAOe9V,GAAG;EAChB8V,MAAAA,GAAG,GAAG9V,CAAN;EACD;EAED;;;;;;;0BAI6B;EAC3B,aAAOmW,QAAQ,CAACP,WAAT,CAAqBrB,IAA5B;EACD;EAED;;;;;wBAI2B+B,GAAG;EAC5B,UAAI,CAACA,CAAL,EAAQ;EACNV,QAAAA,WAAW,GAAG,IAAd;EACD,OAFD,MAEO;EACLA,QAAAA,WAAW,GAAGD,aAAa,CAACW,CAAD,CAA3B;EACD;EACF;EAED;;;;;;;0BAIyB;EACvB,aAAOV,WAAW,IAAI5C,SAAS,CAACoC,QAAhC;EACD;EAED;;;;;;;0BAI2B;EACzB,aAAOW,aAAP;EACD;EAED;;;;;wBAIyBxO,QAAQ;EAC/BwO,MAAAA,aAAa,GAAGxO,MAAhB;EACD;EAED;;;;;;;0BAIoC;EAClC,aAAOyO,sBAAP;EACD;EAED;;;;;wBAIkCO,iBAAiB;EACjDP,MAAAA,sBAAsB,GAAGO,eAAzB;EACD;EAED;;;;;;;0BAImC;EACjC,aAAON,qBAAP;EACD;EAED;;;;;wBAIiCrF,gBAAgB;EAC/CqF,MAAAA,qBAAqB,GAAGrF,cAAxB;EACD;EAED;;;;;;;0BAI4B;EAC1B,aAAOsF,cAAP;EACD;EAED;;;;;wBAI0BpI,GAAG;EAC3BoI,MAAAA,cAAc,GAAGpI,CAAjB;EACD;;;;;;ECxHH,IAAI0I,WAAW,GAAG,EAAlB;;EACA,SAASC,YAAT,CAAsBC,SAAtB,EAAiC3H,IAAjC,EAA4C;EAAA,MAAXA,IAAW;EAAXA,IAAAA,IAAW,GAAJ,EAAI;EAAA;;EAC1C,MAAM/B,GAAG,GAAGxC,IAAI,CAACD,SAAL,CAAe,CAACmM,SAAD,EAAY3H,IAAZ,CAAf,CAAZ;EACA,MAAI0E,GAAG,GAAG+C,WAAW,CAACxJ,GAAD,CAArB;;EACA,MAAI,CAACyG,GAAL,EAAU;EACRA,IAAAA,GAAG,GAAG,IAAI7Q,IAAI,CAACC,cAAT,CAAwB6T,SAAxB,EAAmC3H,IAAnC,CAAN;EACAyH,IAAAA,WAAW,CAACxJ,GAAD,CAAX,GAAmByG,GAAnB;EACD;;EACD,SAAOA,GAAP;EACD;;EAED,IAAIkD,YAAY,GAAG,EAAnB;;EACA,SAASC,YAAT,CAAsBF,SAAtB,EAAiC3H,IAAjC,EAA4C;EAAA,MAAXA,IAAW;EAAXA,IAAAA,IAAW,GAAJ,EAAI;EAAA;;EAC1C,MAAM/B,GAAG,GAAGxC,IAAI,CAACD,SAAL,CAAe,CAACmM,SAAD,EAAY3H,IAAZ,CAAf,CAAZ;EACA,MAAI8H,GAAG,GAAGF,YAAY,CAAC3J,GAAD,CAAtB;;EACA,MAAI,CAAC6J,GAAL,EAAU;EACRA,IAAAA,GAAG,GAAG,IAAIjU,IAAI,CAACkU,YAAT,CAAsBJ,SAAtB,EAAiC3H,IAAjC,CAAN;EACA4H,IAAAA,YAAY,CAAC3J,GAAD,CAAZ,GAAoB6J,GAApB;EACD;;EACD,SAAOA,GAAP;EACD;;EAED,IAAIE,YAAY,GAAG,EAAnB;;EACA,SAASC,YAAT,CAAsBN,SAAtB,EAAiC3H,IAAjC,EAA4C;EAAA,MAAXA,IAAW;EAAXA,IAAAA,IAAW,GAAJ,EAAI;EAAA;;EAAA,cACRA,IADQ;EAAA,MAClC5E,IADkC,SAClCA,IADkC;EAAA,MACzB8M,YADyB;;;EAE1C,MAAMjK,GAAG,GAAGxC,IAAI,CAACD,SAAL,CAAe,CAACmM,SAAD,EAAYO,YAAZ,CAAf,CAAZ;EACA,MAAIJ,GAAG,GAAGE,YAAY,CAAC/J,GAAD,CAAtB;;EACA,MAAI,CAAC6J,GAAL,EAAU;EACRA,IAAAA,GAAG,GAAG,IAAIjU,IAAI,CAACM,kBAAT,CAA4BwT,SAA5B,EAAuC3H,IAAvC,CAAN;EACAgI,IAAAA,YAAY,CAAC/J,GAAD,CAAZ,GAAoB6J,GAApB;EACD;;EACD,SAAOA,GAAP;EACD;;EAED,IAAIK,cAAc,GAAG,IAArB;;EACA,SAASC,YAAT,GAAwB;EACtB,MAAID,cAAJ,EAAoB;EAClB,WAAOA,cAAP;EACD,GAFD,MAEO,IAAIvU,OAAO,EAAX,EAAe;EACpB,QAAMyU,WAAW,GAAG,IAAIxU,IAAI,CAACC,cAAT,GAA0BqN,eAA1B,GAA4C3I,MAAhE,CADoB;;EAGpB2P,IAAAA,cAAc,GAAG,CAACE,WAAD,IAAgBA,WAAW,KAAK,KAAhC,GAAwC,OAAxC,GAAkDA,WAAnE;EACA,WAAOF,cAAP;EACD,GALM,MAKA;EACLA,IAAAA,cAAc,GAAG,OAAjB;EACA,WAAOA,cAAP;EACD;EACF;;EAED,SAASG,iBAAT,CAA2BC,SAA3B,EAAsC;EACpC;EACA;EACA;EAEA;EACA;EACA;EAEA,MAAMC,MAAM,GAAGD,SAAS,CAAC3N,OAAV,CAAkB,KAAlB,CAAf;;EACA,MAAI4N,MAAM,KAAK,CAAC,CAAhB,EAAmB;EACjB,WAAO,CAACD,SAAD,CAAP;EACD,GAFD,MAEO;EACL,QAAIE,OAAJ;EACA,QAAMC,OAAO,GAAGH,SAAS,CAAC9O,SAAV,CAAoB,CAApB,EAAuB+O,MAAvB,CAAhB;;EACA,QAAI;EACFC,MAAAA,OAAO,GAAGf,YAAY,CAACa,SAAD,CAAZ,CAAwBpH,eAAxB,EAAV;EACD,KAFD,CAEE,OAAOpN,CAAP,EAAU;EACV0U,MAAAA,OAAO,GAAGf,YAAY,CAACgB,OAAD,CAAZ,CAAsBvH,eAAtB,EAAV;EACD;;EAPI,mBASiCsH,OATjC;EAAA,QASGjB,eATH,YASGA,eATH;EAAA,QASoBmB,QATpB,YASoBA,QATpB;;EAWL,WAAO,CAACD,OAAD,EAAUlB,eAAV,EAA2BmB,QAA3B,CAAP;EACD;EACF;;EAED,SAASC,gBAAT,CAA0BL,SAA1B,EAAqCf,eAArC,EAAsD3F,cAAtD,EAAsE;EACpE,MAAIjO,OAAO,EAAX,EAAe;EACb,QAAIiO,cAAc,IAAI2F,eAAtB,EAAuC;EACrCe,MAAAA,SAAS,IAAI,IAAb;;EAEA,UAAI1G,cAAJ,EAAoB;EAClB0G,QAAAA,SAAS,aAAW1G,cAApB;EACD;;EAED,UAAI2F,eAAJ,EAAqB;EACnBe,QAAAA,SAAS,aAAWf,eAApB;EACD;;EACD,aAAOe,SAAP;EACD,KAXD,MAWO;EACL,aAAOA,SAAP;EACD;EACF,GAfD,MAeO;EACL,WAAO,EAAP;EACD;EACF;;EAED,SAASM,SAAT,CAAmBpS,CAAnB,EAAsB;EACpB,MAAMqS,EAAE,GAAG,EAAX;;EACA,OAAK,IAAIxI,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI,EAArB,EAAyBA,CAAC,EAA1B,EAA8B;EAC5B,QAAM7D,EAAE,GAAGsM,QAAQ,CAACC,GAAT,CAAa,IAAb,EAAmB1I,CAAnB,EAAsB,CAAtB,CAAX;EACAwI,IAAAA,EAAE,CAACrI,IAAH,CAAQhK,CAAC,CAACgG,EAAD,CAAT;EACD;;EACD,SAAOqM,EAAP;EACD;;EAED,SAASG,WAAT,CAAqBxS,CAArB,EAAwB;EACtB,MAAMqS,EAAE,GAAG,EAAX;;EACA,OAAK,IAAIxI,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI,CAArB,EAAwBA,CAAC,EAAzB,EAA6B;EAC3B,QAAM7D,EAAE,GAAGsM,QAAQ,CAACC,GAAT,CAAa,IAAb,EAAmB,EAAnB,EAAuB,KAAK1I,CAA5B,CAAX;EACAwI,IAAAA,EAAE,CAACrI,IAAH,CAAQhK,CAAC,CAACgG,EAAD,CAAT;EACD;;EACD,SAAOqM,EAAP;EACD;;EAED,SAASI,SAAT,CAAmBvI,GAAnB,EAAwB/L,MAAxB,EAAgCuU,SAAhC,EAA2CC,SAA3C,EAAsDC,MAAtD,EAA8D;EAC5D,MAAMC,IAAI,GAAG3I,GAAG,CAACgB,WAAJ,CAAgBwH,SAAhB,CAAb;;EAEA,MAAIG,IAAI,KAAK,OAAb,EAAsB;EACpB,WAAO,IAAP;EACD,GAFD,MAEO,IAAIA,IAAI,KAAK,IAAb,EAAmB;EACxB,WAAOF,SAAS,CAACxU,MAAD,CAAhB;EACD,GAFM,MAEA;EACL,WAAOyU,MAAM,CAACzU,MAAD,CAAb;EACD;EACF;;EAED,SAAS2U,mBAAT,CAA6B5I,GAA7B,EAAkC;EAChC,MAAIA,GAAG,CAAC6G,eAAJ,IAAuB7G,GAAG,CAAC6G,eAAJ,KAAwB,MAAnD,EAA2D;EACzD,WAAO,KAAP;EACD,GAFD,MAEO;EACL,WACE7G,GAAG,CAAC6G,eAAJ,KAAwB,MAAxB,IACA,CAAC7G,GAAG,CAACnI,MADL,IAEAmI,GAAG,CAACnI,MAAJ,CAAWgR,UAAX,CAAsB,IAAtB,CAFA,IAGC5V,OAAO,MAAM,IAAIC,IAAI,CAACC,cAAT,CAAwB6M,GAAG,CAAC7H,IAA5B,EAAkCqI,eAAlC,GAAoDqG,eAApD,KAAwE,MAJxF;EAMD;EACF;EAED;;;;;MAIMiC;EACJ,+BAAY3Q,IAAZ,EAAkBwI,WAAlB,EAA+BtB,IAA/B,EAAqC;EACnC,SAAKuB,KAAL,GAAavB,IAAI,CAACuB,KAAL,IAAc,CAA3B;EACA,SAAKxL,KAAL,GAAaiK,IAAI,CAACjK,KAAL,IAAc,KAA3B;;EAEA,QAAI,CAACuL,WAAD,IAAgB1N,OAAO,EAA3B,EAA+B;EAC7B,UAAM+E,QAAQ,GAAG;EAAE+Q,QAAAA,WAAW,EAAE;EAAf,OAAjB;EACA,UAAI1J,IAAI,CAACuB,KAAL,GAAa,CAAjB,EAAoB5I,QAAQ,CAACgR,oBAAT,GAAgC3J,IAAI,CAACuB,KAArC;EACpB,WAAKuG,GAAL,GAAWD,YAAY,CAAC/O,IAAD,EAAOH,QAAP,CAAvB;EACD;EACF;;;;WAEDW,SAAA,gBAAOgH,CAAP,EAAU;EACR,QAAI,KAAKwH,GAAT,EAAc;EACZ,UAAMrB,KAAK,GAAG,KAAK1Q,KAAL,GAAaD,IAAI,CAACC,KAAL,CAAWuK,CAAX,CAAb,GAA6BA,CAA3C;EACA,aAAO,KAAKwH,GAAL,CAASxO,MAAT,CAAgBmN,KAAhB,CAAP;EACD,KAHD,MAGO;EACL;EACA,UAAMA,MAAK,GAAG,KAAK1Q,KAAL,GAAaD,IAAI,CAACC,KAAL,CAAWuK,CAAX,CAAb,GAA6B3J,OAAO,CAAC2J,CAAD,EAAI,CAAJ,CAAlD;;EACA,aAAOtK,QAAQ,CAACyQ,MAAD,EAAQ,KAAKlF,KAAb,CAAf;EACD;EACF;;;;EAGH;;;;;MAIMqI;EACJ,6BAAYnN,EAAZ,EAAgB3D,IAAhB,EAAsBkH,IAAtB,EAA4B;EAC1B,SAAKA,IAAL,GAAYA,IAAZ;EACA,SAAKpM,OAAL,GAAeA,OAAO,EAAtB;EAEA,QAAI2T,CAAJ;;EACA,QAAI9K,EAAE,CAACyF,IAAH,CAAQ2H,SAAR,IAAqB,KAAKjW,OAA9B,EAAuC;EACrC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA2T,MAAAA,CAAC,GAAG,KAAJ;;EACA,UAAIvH,IAAI,CAAC9N,YAAT,EAAuB;EACrB,aAAKuK,EAAL,GAAUA,EAAV;EACD,OAFD,MAEO;EACL,aAAKA,EAAL,GAAUA,EAAE,CAAC1B,MAAH,KAAc,CAAd,GAAkB0B,EAAlB,GAAuBsM,QAAQ,CAACe,UAAT,CAAoBrN,EAAE,CAACnE,EAAH,GAAQmE,EAAE,CAAC1B,MAAH,GAAY,EAAZ,GAAiB,IAA7C,CAAjC;EACD;EACF,KAhBD,MAgBO,IAAI0B,EAAE,CAACyF,IAAH,CAAQhJ,IAAR,KAAiB,OAArB,EAA8B;EACnC,WAAKuD,EAAL,GAAUA,EAAV;EACD,KAFM,MAEA;EACL,WAAKA,EAAL,GAAUA,EAAV;EACA8K,MAAAA,CAAC,GAAG9K,EAAE,CAACyF,IAAH,CAAQsD,IAAZ;EACD;;EAED,QAAI,KAAK5R,OAAT,EAAkB;EAChB,UAAM+E,QAAQ,GAAGnF,MAAM,CAACqF,MAAP,CAAc,EAAd,EAAkB,KAAKmH,IAAvB,CAAjB;;EACA,UAAIuH,CAAJ,EAAO;EACL5O,QAAAA,QAAQ,CAACF,QAAT,GAAoB8O,CAApB;EACD;;EACD,WAAK7C,GAAL,GAAWgD,YAAY,CAAC5O,IAAD,EAAOH,QAAP,CAAvB;EACD;EACF;;;;YAEDW,SAAA,kBAAS;EACP,QAAI,KAAK1F,OAAT,EAAkB;EAChB,aAAO,KAAK8Q,GAAL,CAASpL,MAAT,CAAgB,KAAKmD,EAAL,CAAQsN,QAAR,EAAhB,CAAP;EACD,KAFD,MAEO;EACL,UAAMC,WAAW,GAAG5H,YAAA,CAAqB,KAAKpC,IAA1B,CAApB;EAAA,UACEW,GAAG,GAAG2G,MAAM,CAACvH,MAAP,CAAc,OAAd,CADR;EAEA,aAAOD,SAAS,CAACC,MAAV,CAAiBY,GAAjB,EAAsBc,wBAAtB,CAA+C,KAAKhF,EAApD,EAAwDuN,WAAxD,CAAP;EACD;EACF;;YAED/V,gBAAA,yBAAgB;EACd,QAAI,KAAKL,OAAL,IAAgBI,gBAAgB,EAApC,EAAwC;EACtC,aAAO,KAAK0Q,GAAL,CAASzQ,aAAT,CAAuB,KAAKwI,EAAL,CAAQsN,QAAR,EAAvB,CAAP;EACD,KAFD,MAEO;EACL;EACA;EACA,aAAO,EAAP;EACD;EACF;;YAED5I,kBAAA,2BAAkB;EAChB,QAAI,KAAKvN,OAAT,EAAkB;EAChB,aAAO,KAAK8Q,GAAL,CAASvD,eAAT,EAAP;EACD,KAFD,MAEO;EACL,aAAO;EACL3I,QAAAA,MAAM,EAAE,OADH;EAELgP,QAAAA,eAAe,EAAE,MAFZ;EAGL3F,QAAAA,cAAc,EAAE;EAHX,OAAP;EAKD;EACF;;;;EAGH;;;;;MAGMoI;EACJ,4BAAYnR,IAAZ,EAAkBoR,SAAlB,EAA6BlK,IAA7B,EAAmC;EACjC,SAAKA,IAAL,GAAYxM,MAAM,CAACqF,MAAP,CAAc;EAAEsR,MAAAA,KAAK,EAAE;EAAT,KAAd,EAAiCnK,IAAjC,CAAZ;;EACA,QAAI,CAACkK,SAAD,IAAchW,WAAW,EAA7B,EAAiC;EAC/B,WAAKkW,GAAL,GAAWnC,YAAY,CAACnP,IAAD,EAAOkH,IAAP,CAAvB;EACD;EACF;;;;YAED1G,SAAA,gBAAOwD,KAAP,EAAchM,IAAd,EAAoB;EAClB,QAAI,KAAKsZ,GAAT,EAAc;EACZ,aAAO,KAAKA,GAAL,CAAS9Q,MAAT,CAAgBwD,KAAhB,EAAuBhM,IAAvB,CAAP;EACD,KAFD,MAEO;EACL,aAAOsR,kBAAA,CAA2BtR,IAA3B,EAAiCgM,KAAjC,EAAwC,KAAKkD,IAAL,CAAUjD,OAAlD,EAA2D,KAAKiD,IAAL,CAAUmK,KAAV,KAAoB,MAA/E,CAAP;EACD;EACF;;YAEDlW,gBAAA,uBAAc6I,KAAd,EAAqBhM,IAArB,EAA2B;EACzB,QAAI,KAAKsZ,GAAT,EAAc;EACZ,aAAO,KAAKA,GAAL,CAASnW,aAAT,CAAuB6I,KAAvB,EAA8BhM,IAA9B,CAAP;EACD,KAFD,MAEO;EACL,aAAO,EAAP;EACD;EACF;;;;EAGH;;;;;MAIqBwW;WACZ+C,WAAP,kBAAgBrK,IAAhB,EAAsB;EACpB,WAAOsH,MAAM,CAACvH,MAAP,CAAcC,IAAI,CAACxH,MAAnB,EAA2BwH,IAAI,CAACwH,eAAhC,EAAiDxH,IAAI,CAAC6B,cAAtD,EAAsE7B,IAAI,CAACsK,WAA3E,CAAP;EACD;;WAEMvK,SAAP,gBAAcvH,MAAd,EAAsBgP,eAAtB,EAAuC3F,cAAvC,EAAuDyI,WAAvD,EAA4E;EAAA,QAArBA,WAAqB;EAArBA,MAAAA,WAAqB,GAAP,KAAO;EAAA;;EAC1E,QAAMC,eAAe,GAAG/R,MAAM,IAAI4O,QAAQ,CAACJ,aAA3C;EAAA;EAEEwD,IAAAA,OAAO,GAAGD,eAAe,KAAKD,WAAW,GAAG,OAAH,GAAalC,YAAY,EAAzC,CAF3B;EAAA,QAGEqC,gBAAgB,GAAGjD,eAAe,IAAIJ,QAAQ,CAACH,sBAHjD;EAAA,QAIEyD,eAAe,GAAG7I,cAAc,IAAIuF,QAAQ,CAACF,qBAJ/C;EAKA,WAAO,IAAII,MAAJ,CAAWkD,OAAX,EAAoBC,gBAApB,EAAsCC,eAAtC,EAAuDH,eAAvD,CAAP;EACD;;WAEM9E,aAAP,sBAAoB;EAClB0C,IAAAA,cAAc,GAAG,IAAjB;EACAV,IAAAA,WAAW,GAAG,EAAd;EACAG,IAAAA,YAAY,GAAG,EAAf;EACAI,IAAAA,YAAY,GAAG,EAAf;EACD;;WAEM2C,aAAP,2BAAoE;EAAA,kCAAJ,EAAI;EAAA,QAAhDnS,MAAgD,QAAhDA,MAAgD;EAAA,QAAxCgP,eAAwC,QAAxCA,eAAwC;EAAA,QAAvB3F,cAAuB,QAAvBA,cAAuB;;EAClE,WAAOyF,MAAM,CAACvH,MAAP,CAAcvH,MAAd,EAAsBgP,eAAtB,EAAuC3F,cAAvC,CAAP;EACD;;EAED,kBAAYrJ,MAAZ,EAAoBoS,SAApB,EAA+B/I,cAA/B,EAA+C0I,eAA/C,EAAgE;EAAA,6BACMjC,iBAAiB,CAAC9P,MAAD,CADvB;EAAA,QACvDqS,YADuD;EAAA,QACzCC,qBADyC;EAAA,QAClBC,oBADkB;;EAG9D,SAAKvS,MAAL,GAAcqS,YAAd;EACA,SAAKrD,eAAL,GAAuBoD,SAAS,IAAIE,qBAAb,IAAsC,IAA7D;EACA,SAAKjJ,cAAL,GAAsBA,cAAc,IAAIkJ,oBAAlB,IAA0C,IAAhE;EACA,SAAKjS,IAAL,GAAY8P,gBAAgB,CAAC,KAAKpQ,MAAN,EAAc,KAAKgP,eAAnB,EAAoC,KAAK3F,cAAzC,CAA5B;EAEA,SAAKmJ,aAAL,GAAqB;EAAE1R,MAAAA,MAAM,EAAE,EAAV;EAAc+I,MAAAA,UAAU,EAAE;EAA1B,KAArB;EACA,SAAK4I,WAAL,GAAmB;EAAE3R,MAAAA,MAAM,EAAE,EAAV;EAAc+I,MAAAA,UAAU,EAAE;EAA1B,KAAnB;EACA,SAAK6I,aAAL,GAAqB,IAArB;EACA,SAAKC,QAAL,GAAgB,EAAhB;EAEA,SAAKZ,eAAL,GAAuBA,eAAvB;EACA,SAAKa,iBAAL,GAAyB,IAAzB;EACD;;;;YAUDzJ,cAAA,qBAAYwH,SAAZ,EAA8B;EAAA,QAAlBA,SAAkB;EAAlBA,MAAAA,SAAkB,GAAN,IAAM;EAAA;;EAC5B,QAAMrQ,IAAI,GAAGlF,OAAO,EAApB;EAAA,QACEyX,MAAM,GAAGvS,IAAI,IAAI9E,gBAAgB,EADnC;EAAA,QAEEsX,YAAY,GAAG,KAAKpB,SAAL,EAFjB;EAAA,QAGEqB,cAAc,GACZ,CAAC,KAAK/D,eAAL,KAAyB,IAAzB,IAAiC,KAAKA,eAAL,KAAyB,MAA3D,MACC,KAAK3F,cAAL,KAAwB,IAAxB,IAAgC,KAAKA,cAAL,KAAwB,SADzD,CAJJ;;EAOA,QAAI,CAACwJ,MAAD,IAAW,EAAEC,YAAY,IAAIC,cAAlB,CAAX,IAAgD,CAACpC,SAArD,EAAgE;EAC9D,aAAO,OAAP;EACD,KAFD,MAEO,IAAI,CAACkC,MAAD,IAAYC,YAAY,IAAIC,cAAhC,EAAiD;EACtD,aAAO,IAAP;EACD,KAFM,MAEA;EACL,aAAO,MAAP;EACD;EACF;;YAEDC,QAAA,eAAMC,IAAN,EAAY;EACV,QAAI,CAACA,IAAD,IAASjY,MAAM,CAACkY,mBAAP,CAA2BD,IAA3B,EAAiC7W,MAAjC,KAA4C,CAAzD,EAA4D;EAC1D,aAAO,IAAP;EACD,KAFD,MAEO;EACL,aAAO0S,MAAM,CAACvH,MAAP,CACL0L,IAAI,CAACjT,MAAL,IAAe,KAAK+R,eADf,EAELkB,IAAI,CAACjE,eAAL,IAAwB,KAAKA,eAFxB,EAGLiE,IAAI,CAAC5J,cAAL,IAAuB,KAAKA,cAHvB,EAIL4J,IAAI,CAACnB,WAAL,IAAoB,KAJf,CAAP;EAMD;EACF;;YAEDqB,gBAAA,uBAAcF,IAAd,EAAyB;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACvB,WAAO,KAAKD,KAAL,CAAWhY,MAAM,CAACqF,MAAP,CAAc,EAAd,EAAkB4S,IAAlB,EAAwB;EAAEnB,MAAAA,WAAW,EAAE;EAAf,KAAxB,CAAX,CAAP;EACD;;YAEDxJ,oBAAA,2BAAkB2K,IAAlB,EAA6B;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAC3B,WAAO,KAAKD,KAAL,CAAWhY,MAAM,CAACqF,MAAP,CAAc,EAAd,EAAkB4S,IAAlB,EAAwB;EAAEnB,MAAAA,WAAW,EAAE;EAAf,KAAxB,CAAX,CAAP;EACD;;YAEDxO,SAAA,kBAAOlH,MAAP,EAAe0E,MAAf,EAA+B6P,SAA/B,EAAiD;EAAA;;EAAA,QAAlC7P,MAAkC;EAAlCA,MAAAA,MAAkC,GAAzB,KAAyB;EAAA;;EAAA,QAAlB6P,SAAkB;EAAlBA,MAAAA,SAAkB,GAAN,IAAM;EAAA;;EAC/C,WAAOD,SAAS,CAAC,IAAD,EAAOtU,MAAP,EAAeuU,SAAf,EAA0B/G,MAA1B,EAA0C,YAAM;EAC9D,UAAMtJ,IAAI,GAAGQ,MAAM,GAAG;EAAEhI,QAAAA,KAAK,EAAEsD,MAAT;EAAiBrD,QAAAA,GAAG,EAAE;EAAtB,OAAH,GAAuC;EAAED,QAAAA,KAAK,EAAEsD;EAAT,OAA1D;EAAA,UACEgX,SAAS,GAAGtS,MAAM,GAAG,QAAH,GAAc,YADlC;;EAEA,UAAI,CAAC,KAAI,CAAC2R,WAAL,CAAiBW,SAAjB,EAA4BhX,MAA5B,CAAL,EAA0C;EACxC,QAAA,KAAI,CAACqW,WAAL,CAAiBW,SAAjB,EAA4BhX,MAA5B,IAAsCiU,SAAS,CAAC,UAAApM,EAAE;EAAA,iBAAI,KAAI,CAACqF,OAAL,CAAarF,EAAb,EAAiB3D,IAAjB,EAAuB,OAAvB,CAAJ;EAAA,SAAH,CAA/C;EACD;;EACD,aAAO,KAAI,CAACmS,WAAL,CAAiBW,SAAjB,EAA4BhX,MAA5B,CAAP;EACD,KAPe,CAAhB;EAQD;;YAEDsH,WAAA,oBAAStH,MAAT,EAAiB0E,MAAjB,EAAiC6P,SAAjC,EAAmD;EAAA;;EAAA,QAAlC7P,MAAkC;EAAlCA,MAAAA,MAAkC,GAAzB,KAAyB;EAAA;;EAAA,QAAlB6P,SAAkB;EAAlBA,MAAAA,SAAkB,GAAN,IAAM;EAAA;;EACjD,WAAOD,SAAS,CAAC,IAAD,EAAOtU,MAAP,EAAeuU,SAAf,EAA0B/G,QAA1B,EAA4C,YAAM;EAChE,UAAMtJ,IAAI,GAAGQ,MAAM,GACb;EAAE3H,QAAAA,OAAO,EAAEiD,MAAX;EAAmBvD,QAAAA,IAAI,EAAE,SAAzB;EAAoCC,QAAAA,KAAK,EAAE,MAA3C;EAAmDC,QAAAA,GAAG,EAAE;EAAxD,OADa,GAEb;EAAEI,QAAAA,OAAO,EAAEiD;EAAX,OAFN;EAAA,UAGEgX,SAAS,GAAGtS,MAAM,GAAG,QAAH,GAAc,YAHlC;;EAIA,UAAI,CAAC,MAAI,CAAC0R,aAAL,CAAmBY,SAAnB,EAA8BhX,MAA9B,CAAL,EAA4C;EAC1C,QAAA,MAAI,CAACoW,aAAL,CAAmBY,SAAnB,EAA8BhX,MAA9B,IAAwCqU,WAAW,CAAC,UAAAxM,EAAE;EAAA,iBACpD,MAAI,CAACqF,OAAL,CAAarF,EAAb,EAAiB3D,IAAjB,EAAuB,SAAvB,CADoD;EAAA,SAAH,CAAnD;EAGD;;EACD,aAAO,MAAI,CAACkS,aAAL,CAAmBY,SAAnB,EAA8BhX,MAA9B,CAAP;EACD,KAXe,CAAhB;EAYD;;YAEDuH,YAAA,qBAAUgN,SAAV,EAA4B;EAAA;;EAAA,QAAlBA,SAAkB;EAAlBA,MAAAA,SAAkB,GAAN,IAAM;EAAA;;EAC1B,WAAOD,SAAS,CACd,IADc,EAEdrU,SAFc,EAGdsU,SAHc,EAId;EAAA,aAAM/G,SAAN;EAAA,KAJc,EAKd,YAAM;EACJ;EACA;EACA,UAAI,CAAC,MAAI,CAAC8I,aAAV,EAAyB;EACvB,YAAMpS,IAAI,GAAG;EAAEjH,UAAAA,IAAI,EAAE,SAAR;EAAmBQ,UAAAA,MAAM,EAAE;EAA3B,SAAb;EACA,QAAA,MAAI,CAAC6Y,aAAL,GAAqB,CAACnC,QAAQ,CAACC,GAAT,CAAa,IAAb,EAAmB,EAAnB,EAAuB,EAAvB,EAA2B,CAA3B,CAAD,EAAgCD,QAAQ,CAACC,GAAT,CAAa,IAAb,EAAmB,EAAnB,EAAuB,EAAvB,EAA2B,EAA3B,CAAhC,EAAgEvF,GAAhE,CACnB,UAAAhH,EAAE;EAAA,iBAAI,MAAI,CAACqF,OAAL,CAAarF,EAAb,EAAiB3D,IAAjB,EAAuB,WAAvB,CAAJ;EAAA,SADiB,CAArB;EAGD;;EAED,aAAO,MAAI,CAACoS,aAAZ;EACD,KAhBa,CAAhB;EAkBD;;YAED3O,OAAA,gBAAK3H,MAAL,EAAauU,SAAb,EAA+B;EAAA;;EAAA,QAAlBA,SAAkB;EAAlBA,MAAAA,SAAkB,GAAN,IAAM;EAAA;;EAC7B,WAAOD,SAAS,CAAC,IAAD,EAAOtU,MAAP,EAAeuU,SAAf,EAA0B/G,IAA1B,EAAwC,YAAM;EAC5D,UAAMtJ,IAAI,GAAG;EAAEyJ,QAAAA,GAAG,EAAE3N;EAAP,OAAb,CAD4D;EAI5D;;EACA,UAAI,CAAC,MAAI,CAACuW,QAAL,CAAcvW,MAAd,CAAL,EAA4B;EAC1B,QAAA,MAAI,CAACuW,QAAL,CAAcvW,MAAd,IAAwB,CAACmU,QAAQ,CAACC,GAAT,CAAa,CAAC,EAAd,EAAkB,CAAlB,EAAqB,CAArB,CAAD,EAA0BD,QAAQ,CAACC,GAAT,CAAa,IAAb,EAAmB,CAAnB,EAAsB,CAAtB,CAA1B,EAAoDvF,GAApD,CAAwD,UAAAhH,EAAE;EAAA,iBAChF,MAAI,CAACqF,OAAL,CAAarF,EAAb,EAAiB3D,IAAjB,EAAuB,KAAvB,CADgF;EAAA,SAA1D,CAAxB;EAGD;;EAED,aAAO,MAAI,CAACqS,QAAL,CAAcvW,MAAd,CAAP;EACD,KAZe,CAAhB;EAaD;;YAEDkN,UAAA,iBAAQrF,EAAR,EAAY9D,QAAZ,EAAsBkT,KAAtB,EAA6B;EAC3B,QAAM9K,EAAE,GAAG,KAAKC,WAAL,CAAiBvE,EAAjB,EAAqB9D,QAArB,CAAX;EAAA,QACEmT,OAAO,GAAG/K,EAAE,CAAC9M,aAAH,EADZ;EAAA,QAEE8X,QAAQ,GAAGD,OAAO,CAAC9S,IAAR,CAAa,UAAAC,CAAC;EAAA,aAAIA,CAAC,CAACC,IAAF,CAAOC,WAAP,OAAyB0S,KAA7B;EAAA,KAAd,CAFb;EAGA,WAAOE,QAAQ,GAAGA,QAAQ,CAAC3S,KAAZ,GAAoB,IAAnC;EACD;;YAEDoI,kBAAA,yBAAgBxB,IAAhB,EAA2B;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACzB;EACA;EACA,WAAO,IAAIyJ,mBAAJ,CAAwB,KAAK3Q,IAA7B,EAAmCkH,IAAI,CAACsB,WAAL,IAAoB,KAAK0K,WAA5D,EAAyEhM,IAAzE,CAAP;EACD;;YAEDgB,cAAA,qBAAYvE,EAAZ,EAAgB9D,QAAhB,EAA+B;EAAA,QAAfA,QAAe;EAAfA,MAAAA,QAAe,GAAJ,EAAI;EAAA;;EAC7B,WAAO,IAAIiR,iBAAJ,CAAsBnN,EAAtB,EAA0B,KAAK3D,IAA/B,EAAqCH,QAArC,CAAP;EACD;;YAEDsT,eAAA,sBAAajM,IAAb,EAAwB;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACtB,WAAO,IAAIiK,gBAAJ,CAAqB,KAAKnR,IAA1B,EAAgC,KAAKoR,SAAL,EAAhC,EAAkDlK,IAAlD,CAAP;EACD;;YAEDkK,YAAA,qBAAY;EACV,WACE,KAAK1R,MAAL,KAAgB,IAAhB,IACA,KAAKA,MAAL,CAAYW,WAAZ,OAA8B,OAD9B,IAECvF,OAAO,MAAM,IAAIC,IAAI,CAACC,cAAT,CAAwB,KAAKgF,IAA7B,EAAmCqI,eAAnC,GAAqD3I,MAArD,CAA4DgR,UAA5D,CAAuE,OAAvE,CAHhB;EAKD;;YAED1F,SAAA,gBAAOoI,KAAP,EAAc;EACZ,WACE,KAAK1T,MAAL,KAAgB0T,KAAK,CAAC1T,MAAtB,IACA,KAAKgP,eAAL,KAAyB0E,KAAK,CAAC1E,eAD/B,IAEA,KAAK3F,cAAL,KAAwBqK,KAAK,CAACrK,cAHhC;EAKD;;;;0BAhJiB;EAChB,UAAI,KAAKuJ,iBAAL,IAA0B,IAA9B,EAAoC;EAClC,aAAKA,iBAAL,GAAyB7B,mBAAmB,CAAC,IAAD,CAA5C;EACD;;EAED,aAAO,KAAK6B,iBAAZ;EACD;;;;;;EC7TH;;;;;;;;;;EAUA,SAASe,cAAT,GAAoC;EAAA,oCAATC,OAAS;EAATA,IAAAA,OAAS;EAAA;;EAClC,MAAMC,IAAI,GAAGD,OAAO,CAACtX,MAAR,CAAe,UAAC2B,CAAD,EAAI+P,CAAJ;EAAA,WAAU/P,CAAC,GAAG+P,CAAC,CAACnC,MAAhB;EAAA,GAAf,EAAuC,EAAvC,CAAb;EACA,SAAOD,MAAM,OAAKiI,IAAL,OAAb;EACD;;EAED,SAASC,iBAAT,GAA0C;EAAA,qCAAZC,UAAY;EAAZA,IAAAA,UAAY;EAAA;;EACxC,SAAO,UAAAtT,CAAC;EAAA,WACNsT,UAAU,CACPzX,MADH,CAEI,gBAAmC0X,EAAnC,EAA0C;EAAA,UAAxCC,UAAwC;EAAA,UAA5BC,UAA4B;EAAA,UAAhBC,MAAgB;;EAAA,gBACdH,EAAE,CAACvT,CAAD,EAAI0T,MAAJ,CADY;EAAA,UACjClO,GADiC;EAAA,UAC5ByD,IAD4B;EAAA,UACtBlN,IADsB;;EAExC,aAAO,CAACxB,MAAM,CAACqF,MAAP,CAAc4T,UAAd,EAA0BhO,GAA1B,CAAD,EAAiCiO,UAAU,IAAIxK,IAA/C,EAAqDlN,IAArD,CAAP;EACD,KALL,EAMI,CAAC,EAAD,EAAK,IAAL,EAAW,CAAX,CANJ,EAQGmB,KARH,CAQS,CART,EAQY,CARZ,CADM;EAAA,GAAR;EAUD;;EAED,SAASyW,KAAT,CAAe1b,CAAf,EAA+B;EAC7B,MAAIA,CAAC,IAAI,IAAT,EAAe;EACb,WAAO,CAAC,IAAD,EAAO,IAAP,CAAP;EACD;;EAH4B,qCAAV2b,QAAU;EAAVA,IAAAA,QAAU;EAAA;;EAK7B,+BAAiCA,QAAjC,+BAA2C;EAAA;EAAA,QAA/BC,KAA+B;EAAA,QAAxBC,SAAwB;EACzC,QAAM9T,CAAC,GAAG6T,KAAK,CAAClI,IAAN,CAAW1T,CAAX,CAAV;;EACA,QAAI+H,CAAJ,EAAO;EACL,aAAO8T,SAAS,CAAC9T,CAAD,CAAhB;EACD;EACF;;EACD,SAAO,CAAC,IAAD,EAAO,IAAP,CAAP;EACD;;EAED,SAAS+T,WAAT,GAA8B;EAAA,qCAAN5X,IAAM;EAANA,IAAAA,IAAM;EAAA;;EAC5B,SAAO,UAACuQ,KAAD,EAAQgH,MAAR,EAAmB;EACxB,QAAMM,GAAG,GAAG,EAAZ;EACA,QAAI3M,CAAJ;;EAEA,SAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGlL,IAAI,CAACR,MAArB,EAA6B0L,CAAC,EAA9B,EAAkC;EAChC2M,MAAAA,GAAG,CAAC7X,IAAI,CAACkL,CAAD,CAAL,CAAH,GAAelK,YAAY,CAACuP,KAAK,CAACgH,MAAM,GAAGrM,CAAV,CAAN,CAA3B;EACD;;EACD,WAAO,CAAC2M,GAAD,EAAM,IAAN,EAAYN,MAAM,GAAGrM,CAArB,CAAP;EACD,GARD;EASD;;;EAGD,IAAM4M,WAAW,GAAG,iCAApB;EAAA,IACEC,gBAAgB,GAAG,oDADrB;EAAA,IAEEC,YAAY,GAAGhJ,MAAM,MAAI+I,gBAAgB,CAAC9I,MAArB,GAA8B6I,WAAW,CAAC7I,MAA1C,OAFvB;EAAA,IAGEgJ,qBAAqB,GAAGjJ,MAAM,UAAQgJ,YAAY,CAAC/I,MAArB,QAHhC;EAAA,IAIEiJ,WAAW,GAAG,6CAJhB;EAAA,IAKEC,YAAY,GAAG,6BALjB;EAAA,IAMEC,eAAe,GAAG,kBANpB;EAAA,IAOEC,kBAAkB,GAAGT,WAAW,CAAC,UAAD,EAAa,YAAb,EAA2B,SAA3B,CAPlC;EAAA,IAQEU,qBAAqB,GAAGV,WAAW,CAAC,MAAD,EAAS,SAAT,CARrC;EAAA,IASEW,WAAW,GAAG,uBAThB;EAAA;EAUEC,YAAY,GAAGxJ,MAAM,CAChB+I,gBAAgB,CAAC9I,MADD,aACe6I,WAAW,CAAC7I,MAD3B,UACsC9I,SAAS,CAAC8I,MADhD,SAVvB;EAAA,IAaEwJ,qBAAqB,GAAGzJ,MAAM,UAAQwJ,YAAY,CAACvJ,MAArB,QAbhC;;EAeA,SAASyJ,GAAT,CAAanI,KAAb,EAAoBN,GAApB,EAAyB0I,QAAzB,EAAmC;EACjC,MAAM9U,CAAC,GAAG0M,KAAK,CAACN,GAAD,CAAf;EACA,SAAOnS,WAAW,CAAC+F,CAAD,CAAX,GAAiB8U,QAAjB,GAA4B3X,YAAY,CAAC6C,CAAD,CAA/C;EACD;;EAED,SAAS+U,aAAT,CAAuBrI,KAAvB,EAA8BgH,MAA9B,EAAsC;EACpC,MAAMsB,IAAI,GAAG;EACX5c,IAAAA,IAAI,EAAEyc,GAAG,CAACnI,KAAD,EAAQgH,MAAR,CADE;EAEXrb,IAAAA,KAAK,EAAEwc,GAAG,CAACnI,KAAD,EAAQgH,MAAM,GAAG,CAAjB,EAAoB,CAApB,CAFC;EAGXpb,IAAAA,GAAG,EAAEuc,GAAG,CAACnI,KAAD,EAAQgH,MAAM,GAAG,CAAjB,EAAoB,CAApB;EAHG,GAAb;EAMA,SAAO,CAACsB,IAAD,EAAO,IAAP,EAAatB,MAAM,GAAG,CAAtB,CAAP;EACD;;EAED,SAASuB,cAAT,CAAwBvI,KAAxB,EAA+BgH,MAA/B,EAAuC;EACrC,MAAMsB,IAAI,GAAG;EACXpc,IAAAA,IAAI,EAAEic,GAAG,CAACnI,KAAD,EAAQgH,MAAR,EAAgB,CAAhB,CADE;EAEX7a,IAAAA,MAAM,EAAEgc,GAAG,CAACnI,KAAD,EAAQgH,MAAM,GAAG,CAAjB,EAAoB,CAApB,CAFA;EAGX3a,IAAAA,MAAM,EAAE8b,GAAG,CAACnI,KAAD,EAAQgH,MAAM,GAAG,CAAjB,EAAoB,CAApB,CAHA;EAIX/U,IAAAA,WAAW,EAAErB,WAAW,CAACoP,KAAK,CAACgH,MAAM,GAAG,CAAV,CAAN;EAJb,GAAb;EAOA,SAAO,CAACsB,IAAD,EAAO,IAAP,EAAatB,MAAM,GAAG,CAAtB,CAAP;EACD;;EAED,SAASwB,gBAAT,CAA0BxI,KAA1B,EAAiCgH,MAAjC,EAAyC;EACvC,MAAMyB,KAAK,GAAG,CAACzI,KAAK,CAACgH,MAAD,CAAN,IAAkB,CAAChH,KAAK,CAACgH,MAAM,GAAG,CAAV,CAAtC;EAAA,MACE0B,UAAU,GAAGzU,YAAY,CAAC+L,KAAK,CAACgH,MAAM,GAAG,CAAV,CAAN,EAAoBhH,KAAK,CAACgH,MAAM,GAAG,CAAV,CAAzB,CAD3B;EAAA,MAEEzK,IAAI,GAAGkM,KAAK,GAAG,IAAH,GAAUhI,eAAe,CAACC,QAAhB,CAAyBgI,UAAzB,CAFxB;EAGA,SAAO,CAAC,EAAD,EAAKnM,IAAL,EAAWyK,MAAM,GAAG,CAApB,CAAP;EACD;;EAED,SAAS2B,eAAT,CAAyB3I,KAAzB,EAAgCgH,MAAhC,EAAwC;EACtC,MAAMzK,IAAI,GAAGyD,KAAK,CAACgH,MAAD,CAAL,GAAgBpH,QAAQ,CAACxF,MAAT,CAAgB4F,KAAK,CAACgH,MAAD,CAArB,CAAhB,GAAiD,IAA9D;EACA,SAAO,CAAC,EAAD,EAAKzK,IAAL,EAAWyK,MAAM,GAAG,CAApB,CAAP;EACD;;;EAID,IAAM4B,WAAW,GAAG,4JAApB;;EAEA,SAASC,kBAAT,CAA4B7I,KAA5B,EAAmC;EAAA,MAE/BzU,CAF+B,GAW7ByU,KAX6B;EAAA,MAG/B8I,OAH+B,GAW7B9I,KAX6B;EAAA,MAI/B+I,QAJ+B,GAW7B/I,KAX6B;EAAA,MAK/BgJ,OAL+B,GAW7BhJ,KAX6B;EAAA,MAM/BiJ,MAN+B,GAW7BjJ,KAX6B;EAAA,MAO/BkJ,OAP+B,GAW7BlJ,KAX6B;EAAA,MAQ/BmJ,SAR+B,GAW7BnJ,KAX6B;EAAA,MAS/BoJ,SAT+B,GAW7BpJ,KAX6B;EAAA,MAU/BqJ,eAV+B,GAW7BrJ,KAX6B;EAajC,MAAMsJ,iBAAiB,GAAG/d,CAAC,CAAC,CAAD,CAAD,KAAS,GAAnC;;EAEA,MAAMge,WAAW,GAAG,SAAdA,WAAc,CAAA9N,GAAG;EAAA,WAAKA,GAAG,IAAI6N,iBAAP,GAA2B,CAAC7N,GAA5B,GAAkCA,GAAvC;EAAA,GAAvB;;EAEA,SAAO,CACL;EACElE,IAAAA,KAAK,EAAEgS,WAAW,CAAC9Y,YAAY,CAACqY,OAAD,CAAb,CADpB;EAEE3S,IAAAA,MAAM,EAAEoT,WAAW,CAAC9Y,YAAY,CAACsY,QAAD,CAAb,CAFrB;EAGEtR,IAAAA,KAAK,EAAE8R,WAAW,CAAC9Y,YAAY,CAACuY,OAAD,CAAb,CAHpB;EAIEtR,IAAAA,IAAI,EAAE6R,WAAW,CAAC9Y,YAAY,CAACwY,MAAD,CAAb,CAJnB;EAKE5T,IAAAA,KAAK,EAAEkU,WAAW,CAAC9Y,YAAY,CAACyY,OAAD,CAAb,CALpB;EAME5T,IAAAA,OAAO,EAAEiU,WAAW,CAAC9Y,YAAY,CAAC0Y,SAAD,CAAb,CANtB;EAOExR,IAAAA,OAAO,EAAE4R,WAAW,CAAC9Y,YAAY,CAAC2Y,SAAD,CAAb,CAPtB;EAQEI,IAAAA,YAAY,EAAED,WAAW,CAAC3Y,WAAW,CAACyY,eAAD,CAAZ;EAR3B,GADK,CAAP;EAYD;EAGD;EACA;;;EACA,IAAMI,UAAU,GAAG;EACjBC,EAAAA,GAAG,EAAE,CADY;EAEjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EAFO;EAGjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EAHO;EAIjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EAJO;EAKjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EALO;EAMjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EANO;EAOjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EAPO;EAQjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EARO;EASjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK;EATO,CAAnB;;EAYA,SAASC,WAAT,CAAqBC,UAArB,EAAiCtB,OAAjC,EAA0CC,QAA1C,EAAoDE,MAApD,EAA4DC,OAA5D,EAAqEC,SAArE,EAAgFC,SAAhF,EAA2F;EACzF,MAAMiB,MAAM,GAAG;EACb3e,IAAAA,IAAI,EAAEod,OAAO,CAAC7Z,MAAR,KAAmB,CAAnB,GAAuBwD,cAAc,CAAChC,YAAY,CAACqY,OAAD,CAAb,CAArC,GAA+DrY,YAAY,CAACqY,OAAD,CADpE;EAEbnd,IAAAA,KAAK,EAAE8Q,WAAA,CAAoBxH,OAApB,CAA4B8T,QAA5B,IAAwC,CAFlC;EAGbnd,IAAAA,GAAG,EAAE6E,YAAY,CAACwY,MAAD,CAHJ;EAIb/c,IAAAA,IAAI,EAAEuE,YAAY,CAACyY,OAAD,CAJL;EAKb/c,IAAAA,MAAM,EAAEsE,YAAY,CAAC0Y,SAAD;EALP,GAAf;EAQA,MAAIC,SAAJ,EAAeiB,MAAM,CAAChe,MAAP,GAAgBoE,YAAY,CAAC2Y,SAAD,CAA5B;;EACf,MAAIgB,UAAJ,EAAgB;EACdC,IAAAA,MAAM,CAACre,OAAP,GACEoe,UAAU,CAACnb,MAAX,GAAoB,CAApB,GACIwN,YAAA,CAAqBxH,OAArB,CAA6BmV,UAA7B,IAA2C,CAD/C,GAEI3N,aAAA,CAAsBxH,OAAtB,CAA8BmV,UAA9B,IAA4C,CAHlD;EAID;;EAED,SAAOC,MAAP;EACD;;;EAGD,IAAMC,OAAO,GAAG,iMAAhB;;EAEA,SAASC,cAAT,CAAwBvK,KAAxB,EAA+B;EAAA,MAGzBoK,UAHyB,GAcvBpK,KAduB;EAAA,MAIzBiJ,MAJyB,GAcvBjJ,KAduB;EAAA,MAKzB+I,QALyB,GAcvB/I,KAduB;EAAA,MAMzB8I,OANyB,GAcvB9I,KAduB;EAAA,MAOzBkJ,OAPyB,GAcvBlJ,KAduB;EAAA,MAQzBmJ,SARyB,GAcvBnJ,KAduB;EAAA,MASzBoJ,SATyB,GAcvBpJ,KAduB;EAAA,MAUzBwK,SAVyB,GAcvBxK,KAduB;EAAA,MAWzByK,SAXyB,GAcvBzK,KAduB;EAAA,MAYzB9L,UAZyB,GAcvB8L,KAduB;EAAA,MAazB7L,YAbyB,GAcvB6L,KAduB;EAAA,MAe3BqK,MAf2B,GAelBF,WAAW,CAACC,UAAD,EAAatB,OAAb,EAAsBC,QAAtB,EAAgCE,MAAhC,EAAwCC,OAAxC,EAAiDC,SAAjD,EAA4DC,SAA5D,CAfO;EAiB7B,MAAIhU,MAAJ;;EACA,MAAIoV,SAAJ,EAAe;EACbpV,IAAAA,MAAM,GAAGqU,UAAU,CAACe,SAAD,CAAnB;EACD,GAFD,MAEO,IAAIC,SAAJ,EAAe;EACpBrV,IAAAA,MAAM,GAAG,CAAT;EACD,GAFM,MAEA;EACLA,IAAAA,MAAM,GAAGnB,YAAY,CAACC,UAAD,EAAaC,YAAb,CAArB;EACD;;EAED,SAAO,CAACkW,MAAD,EAAS,IAAI5J,eAAJ,CAAoBrL,MAApB,CAAT,CAAP;EACD;;EAED,SAASsV,iBAAT,CAA2Bnf,CAA3B,EAA8B;EAC5B;EACA,SAAOA,CAAC,CACLyI,OADI,CACI,mBADJ,EACyB,GADzB,EAEJA,OAFI,CAEI,UAFJ,EAEgB,GAFhB,EAGJ2W,IAHI,EAAP;EAID;;;EAID,IAAMC,OAAO,GAAG,4HAAhB;EAAA,IACEC,MAAM,GAAG,sJADX;EAAA,IAEEC,KAAK,GAAG,2HAFV;;EAIA,SAASC,mBAAT,CAA6B/K,KAA7B,EAAoC;EAAA,MACzBoK,UADyB,GAC+CpK,KAD/C;EAAA,MACbiJ,MADa,GAC+CjJ,KAD/C;EAAA,MACL+I,QADK,GAC+C/I,KAD/C;EAAA,MACK8I,OADL,GAC+C9I,KAD/C;EAAA,MACckJ,OADd,GAC+ClJ,KAD/C;EAAA,MACuBmJ,SADvB,GAC+CnJ,KAD/C;EAAA,MACkCoJ,SADlC,GAC+CpJ,KAD/C;EAAA,MAEhCqK,MAFgC,GAEvBF,WAAW,CAACC,UAAD,EAAatB,OAAb,EAAsBC,QAAtB,EAAgCE,MAAhC,EAAwCC,OAAxC,EAAiDC,SAAjD,EAA4DC,SAA5D,CAFY;EAGlC,SAAO,CAACiB,MAAD,EAAS5J,eAAe,CAACE,WAAzB,CAAP;EACD;;EAED,SAASqK,YAAT,CAAsBhL,KAAtB,EAA6B;EAAA,MAClBoK,UADkB,GACsDpK,KADtD;EAAA,MACN+I,QADM,GACsD/I,KADtD;EAAA,MACIiJ,MADJ,GACsDjJ,KADtD;EAAA,MACYkJ,OADZ,GACsDlJ,KADtD;EAAA,MACqBmJ,SADrB,GACsDnJ,KADtD;EAAA,MACgCoJ,SADhC,GACsDpJ,KADtD;EAAA,MAC2C8I,OAD3C,GACsD9I,KADtD;EAAA,MAEzBqK,MAFyB,GAEhBF,WAAW,CAACC,UAAD,EAAatB,OAAb,EAAsBC,QAAtB,EAAgCE,MAAhC,EAAwCC,OAAxC,EAAiDC,SAAjD,EAA4DC,SAA5D,CAFK;EAG3B,SAAO,CAACiB,MAAD,EAAS5J,eAAe,CAACE,WAAzB,CAAP;EACD;;EAED,IAAMsK,4BAA4B,GAAGzE,cAAc,CAACmB,WAAD,EAAcD,qBAAd,CAAnD;EACA,IAAMwD,6BAA6B,GAAG1E,cAAc,CAACoB,YAAD,EAAeF,qBAAf,CAApD;EACA,IAAMyD,gCAAgC,GAAG3E,cAAc,CAACqB,eAAD,EAAkBH,qBAAlB,CAAvD;EACA,IAAM0D,oBAAoB,GAAG5E,cAAc,CAACiB,YAAD,CAA3C;EAEA,IAAM4D,0BAA0B,GAAG1E,iBAAiB,CAClD0B,aADkD,EAElDE,cAFkD,EAGlDC,gBAHkD,CAApD;EAKA,IAAM8C,2BAA2B,GAAG3E,iBAAiB,CACnDmB,kBADmD,EAEnDS,cAFmD,EAGnDC,gBAHmD,CAArD;EAKA,IAAM+C,4BAA4B,GAAG5E,iBAAiB,CAACoB,qBAAD,EAAwBQ,cAAxB,CAAtD;EACA,IAAMiD,uBAAuB,GAAG7E,iBAAiB,CAAC4B,cAAD,EAAiBC,gBAAjB,CAAjD;EAEA;;;;EAIO,SAASiD,YAAT,CAAsBlgB,CAAtB,EAAyB;EAC9B,SAAO0b,KAAK,CACV1b,CADU,EAEV,CAAC0f,4BAAD,EAA+BI,0BAA/B,CAFU,EAGV,CAACH,6BAAD,EAAgCI,2BAAhC,CAHU,EAIV,CAACH,gCAAD,EAAmCI,4BAAnC,CAJU,EAKV,CAACH,oBAAD,EAAuBI,uBAAvB,CALU,CAAZ;EAOD;EAEM,SAASE,gBAAT,CAA0BngB,CAA1B,EAA6B;EAClC,SAAO0b,KAAK,CAACyD,iBAAiB,CAACnf,CAAD,CAAlB,EAAuB,CAAC+e,OAAD,EAAUC,cAAV,CAAvB,CAAZ;EACD;EAEM,SAASoB,aAAT,CAAuBpgB,CAAvB,EAA0B;EAC/B,SAAO0b,KAAK,CACV1b,CADU,EAEV,CAACqf,OAAD,EAAUG,mBAAV,CAFU,EAGV,CAACF,MAAD,EAASE,mBAAT,CAHU,EAIV,CAACD,KAAD,EAAQE,YAAR,CAJU,CAAZ;EAMD;EAEM,SAASY,gBAAT,CAA0BrgB,CAA1B,EAA6B;EAClC,SAAO0b,KAAK,CAAC1b,CAAD,EAAI,CAACqd,WAAD,EAAcC,kBAAd,CAAJ,CAAZ;EACD;EAED,IAAMgD,4BAA4B,GAAGrF,cAAc,CAACwB,WAAD,EAAcE,qBAAd,CAAnD;EACA,IAAM4D,oBAAoB,GAAGtF,cAAc,CAACyB,YAAD,CAA3C;EAEA,IAAM8D,kCAAkC,GAAGpF,iBAAiB,CAC1D0B,aAD0D,EAE1DE,cAF0D,EAG1DC,gBAH0D,EAI1DG,eAJ0D,CAA5D;EAMA,IAAMqD,+BAA+B,GAAGrF,iBAAiB,CACvD4B,cADuD,EAEvDC,gBAFuD,EAGvDG,eAHuD,CAAzD;EAMO,SAASsD,QAAT,CAAkB1gB,CAAlB,EAAqB;EAC1B,SAAO0b,KAAK,CACV1b,CADU,EAEV,CAACsgB,4BAAD,EAA+BE,kCAA/B,CAFU,EAGV,CAACD,oBAAD,EAAuBE,+BAAvB,CAHU,CAAZ;EAKD;;EC/SD,IAAME,OAAO,GAAG,kBAAhB;;EAGA,IAAMC,cAAc,GAAG;EACnB1U,EAAAA,KAAK,EAAE;EACLC,IAAAA,IAAI,EAAE,CADD;EAELrC,IAAAA,KAAK,EAAE,IAAI,EAFN;EAGLC,IAAAA,OAAO,EAAE,IAAI,EAAJ,GAAS,EAHb;EAILqC,IAAAA,OAAO,EAAE,IAAI,EAAJ,GAAS,EAAT,GAAc,EAJlB;EAKL6R,IAAAA,YAAY,EAAE,IAAI,EAAJ,GAAS,EAAT,GAAc,EAAd,GAAmB;EAL5B,GADY;EAQnB9R,EAAAA,IAAI,EAAE;EACJrC,IAAAA,KAAK,EAAE,EADH;EAEJC,IAAAA,OAAO,EAAE,KAAK,EAFV;EAGJqC,IAAAA,OAAO,EAAE,KAAK,EAAL,GAAU,EAHf;EAIJ6R,IAAAA,YAAY,EAAE,KAAK,EAAL,GAAU,EAAV,GAAe;EAJzB,GARa;EAcnBnU,EAAAA,KAAK,EAAE;EAAEC,IAAAA,OAAO,EAAE,EAAX;EAAeqC,IAAAA,OAAO,EAAE,KAAK,EAA7B;EAAiC6R,IAAAA,YAAY,EAAE,KAAK,EAAL,GAAU;EAAzD,GAdY;EAenBlU,EAAAA,OAAO,EAAE;EAAEqC,IAAAA,OAAO,EAAE,EAAX;EAAe6R,IAAAA,YAAY,EAAE,KAAK;EAAlC,GAfU;EAgBnB7R,EAAAA,OAAO,EAAE;EAAE6R,IAAAA,YAAY,EAAE;EAAhB;EAhBU,CAAvB;EAAA,IAkBE4C,YAAY,GAAGve,MAAM,CAACqF,MAAP,CACb;EACEqE,EAAAA,KAAK,EAAE;EACLpB,IAAAA,MAAM,EAAE,EADH;EAELsB,IAAAA,KAAK,EAAE,EAFF;EAGLC,IAAAA,IAAI,EAAE,GAHD;EAILrC,IAAAA,KAAK,EAAE,MAAM,EAJR;EAKLC,IAAAA,OAAO,EAAE,MAAM,EAAN,GAAW,EALf;EAMLqC,IAAAA,OAAO,EAAE,MAAM,EAAN,GAAW,EAAX,GAAgB,EANpB;EAOL6R,IAAAA,YAAY,EAAE,MAAM,EAAN,GAAW,EAAX,GAAgB,EAAhB,GAAqB;EAP9B,GADT;EAUEhS,EAAAA,QAAQ,EAAE;EACRrB,IAAAA,MAAM,EAAE,CADA;EAERsB,IAAAA,KAAK,EAAE,EAFC;EAGRC,IAAAA,IAAI,EAAE,EAHE;EAIRrC,IAAAA,KAAK,EAAE,KAAK,EAJJ;EAKRC,IAAAA,OAAO,EAAE,KAAK,EAAL,GAAU,EALX;EAMRkU,IAAAA,YAAY,EAAE,KAAK,EAAL,GAAU,EAAV,GAAe,EAAf,GAAoB;EAN1B,GAVZ;EAkBErT,EAAAA,MAAM,EAAE;EACNsB,IAAAA,KAAK,EAAE,CADD;EAENC,IAAAA,IAAI,EAAE,EAFA;EAGNrC,IAAAA,KAAK,EAAE,KAAK,EAHN;EAINC,IAAAA,OAAO,EAAE,KAAK,EAAL,GAAU,EAJb;EAKNqC,IAAAA,OAAO,EAAE,KAAK,EAAL,GAAU,EAAV,GAAe,EALlB;EAMN6R,IAAAA,YAAY,EAAE,KAAK,EAAL,GAAU,EAAV,GAAe,EAAf,GAAoB;EAN5B;EAlBV,CADa,EA4Bb2C,cA5Ba,CAlBjB;EAAA,IAgDEE,kBAAkB,GAAG,WAAW,GAhDlC;EAAA,IAiDEC,mBAAmB,GAAG,WAAW,IAjDnC;EAAA,IAkDEC,cAAc,GAAG1e,MAAM,CAACqF,MAAP,CACf;EACEqE,EAAAA,KAAK,EAAE;EACLpB,IAAAA,MAAM,EAAE,EADH;EAELsB,IAAAA,KAAK,EAAE4U,kBAAkB,GAAG,CAFvB;EAGL3U,IAAAA,IAAI,EAAE2U,kBAHD;EAILhX,IAAAA,KAAK,EAAEgX,kBAAkB,GAAG,EAJvB;EAKL/W,IAAAA,OAAO,EAAE+W,kBAAkB,GAAG,EAArB,GAA0B,EAL9B;EAML1U,IAAAA,OAAO,EAAE0U,kBAAkB,GAAG,EAArB,GAA0B,EAA1B,GAA+B,EANnC;EAOL7C,IAAAA,YAAY,EAAE6C,kBAAkB,GAAG,EAArB,GAA0B,EAA1B,GAA+B,EAA/B,GAAoC;EAP7C,GADT;EAUE7U,EAAAA,QAAQ,EAAE;EACRrB,IAAAA,MAAM,EAAE,CADA;EAERsB,IAAAA,KAAK,EAAE4U,kBAAkB,GAAG,EAFpB;EAGR3U,IAAAA,IAAI,EAAE2U,kBAAkB,GAAG,CAHnB;EAIRhX,IAAAA,KAAK,EAAGgX,kBAAkB,GAAG,EAAtB,GAA4B,CAJ3B;EAKR/W,IAAAA,OAAO,EAAG+W,kBAAkB,GAAG,EAArB,GAA0B,EAA3B,GAAiC,CALlC;EAMR1U,IAAAA,OAAO,EAAG0U,kBAAkB,GAAG,EAArB,GAA0B,EAA1B,GAA+B,EAAhC,GAAsC,CANvC;EAOR7C,IAAAA,YAAY,EAAG6C,kBAAkB,GAAG,EAArB,GAA0B,EAA1B,GAA+B,EAA/B,GAAoC,IAArC,GAA6C;EAPnD,GAVZ;EAmBElW,EAAAA,MAAM,EAAE;EACNsB,IAAAA,KAAK,EAAE6U,mBAAmB,GAAG,CADvB;EAEN5U,IAAAA,IAAI,EAAE4U,mBAFA;EAGNjX,IAAAA,KAAK,EAAEiX,mBAAmB,GAAG,EAHvB;EAINhX,IAAAA,OAAO,EAAEgX,mBAAmB,GAAG,EAAtB,GAA2B,EAJ9B;EAKN3U,IAAAA,OAAO,EAAE2U,mBAAmB,GAAG,EAAtB,GAA2B,EAA3B,GAAgC,EALnC;EAMN9C,IAAAA,YAAY,EAAE8C,mBAAmB,GAAG,EAAtB,GAA2B,EAA3B,GAAgC,EAAhC,GAAqC;EAN7C;EAnBV,CADe,EA6BfH,cA7Be,CAlDnB;;EAmFA,IAAMK,YAAY,GAAG,CACnB,OADmB,EAEnB,UAFmB,EAGnB,QAHmB,EAInB,OAJmB,EAKnB,MALmB,EAMnB,OANmB,EAOnB,SAPmB,EAQnB,SARmB,EASnB,cATmB,CAArB;EAYA,IAAMC,YAAY,GAAGD,YAAY,CAAChc,KAAb,CAAmB,CAAnB,EAAsBkc,OAAtB,EAArB;;EAGA,SAAS7G,KAAT,CAAe1I,GAAf,EAAoB2I,IAApB,EAA0B6G,KAA1B,EAAyC;EAAA,MAAfA,KAAe;EAAfA,IAAAA,KAAe,GAAP,KAAO;EAAA;;EACvC;EACA,MAAMC,IAAI,GAAG;EACXC,IAAAA,MAAM,EAAEF,KAAK,GAAG7G,IAAI,CAAC+G,MAAR,GAAiBhf,MAAM,CAACqF,MAAP,CAAc,EAAd,EAAkBiK,GAAG,CAAC0P,MAAtB,EAA8B/G,IAAI,CAAC+G,MAAL,IAAe,EAA7C,CADnB;EAEX7R,IAAAA,GAAG,EAAEmC,GAAG,CAACnC,GAAJ,CAAQ6K,KAAR,CAAcC,IAAI,CAAC9K,GAAnB,CAFM;EAGX8R,IAAAA,kBAAkB,EAAEhH,IAAI,CAACgH,kBAAL,IAA2B3P,GAAG,CAAC2P;EAHxC,GAAb;EAKA,SAAO,IAAIC,QAAJ,CAAaH,IAAb,CAAP;EACD;;EAED,SAASI,SAAT,CAAmB1hB,CAAnB,EAAsB;EACpB,SAAOA,CAAC,GAAG,CAAJ,GAAQ6E,IAAI,CAACC,KAAL,CAAW9E,CAAX,CAAR,GAAwB6E,IAAI,CAAC8c,IAAL,CAAU3hB,CAAV,CAA/B;EACD;;;EAGD,SAAS4hB,OAAT,CAAiBC,MAAjB,EAAyBC,OAAzB,EAAkCC,QAAlC,EAA4CC,KAA5C,EAAmDC,MAAnD,EAA2D;EACzD,MAAMC,IAAI,GAAGL,MAAM,CAACI,MAAD,CAAN,CAAeF,QAAf,CAAb;EAAA,MACEI,GAAG,GAAGL,OAAO,CAACC,QAAD,CAAP,GAAoBG,IAD5B;EAAA,MAEEE,QAAQ,GAAGvd,IAAI,CAACqF,IAAL,CAAUiY,GAAV,MAAmBtd,IAAI,CAACqF,IAAL,CAAU8X,KAAK,CAACC,MAAD,CAAf,CAFhC;EAAA;EAIEI,EAAAA,KAAK,GACH,CAACD,QAAD,IAAaJ,KAAK,CAACC,MAAD,CAAL,KAAkB,CAA/B,IAAoCpd,IAAI,CAACoF,GAAL,CAASkY,GAAT,KAAiB,CAArD,GAAyDT,SAAS,CAACS,GAAD,CAAlE,GAA0Etd,IAAI,CAACmB,KAAL,CAAWmc,GAAX,CAL9E;EAMAH,EAAAA,KAAK,CAACC,MAAD,CAAL,IAAiBI,KAAjB;EACAP,EAAAA,OAAO,CAACC,QAAD,CAAP,IAAqBM,KAAK,GAAGH,IAA7B;EACD;;;EAGD,SAASI,eAAT,CAAyBT,MAAzB,EAAiCU,IAAjC,EAAuC;EACrCpB,EAAAA,YAAY,CAACtd,MAAb,CAAoB,UAAC2e,QAAD,EAAWtT,OAAX,EAAuB;EACzC,QAAI,CAACjN,WAAW,CAACsgB,IAAI,CAACrT,OAAD,CAAL,CAAhB,EAAiC;EAC/B,UAAIsT,QAAJ,EAAc;EACZZ,QAAAA,OAAO,CAACC,MAAD,EAASU,IAAT,EAAeC,QAAf,EAAyBD,IAAzB,EAA+BrT,OAA/B,CAAP;EACD;;EACD,aAAOA,OAAP;EACD,KALD,MAKO;EACL,aAAOsT,QAAP;EACD;EACF,GATD,EASG,IATH;EAUD;EAED;;;;;;;;;;;;;;;MAaqBf;EACnB;;;EAGA,oBAAYgB,MAAZ,EAAoB;EAClB,QAAMC,QAAQ,GAAGD,MAAM,CAACjB,kBAAP,KAA8B,UAA9B,IAA4C,KAA7D;EACA;;;;EAGA,SAAKD,MAAL,GAAckB,MAAM,CAAClB,MAArB;EACA;;;;EAGA,SAAK7R,GAAL,GAAW+S,MAAM,CAAC/S,GAAP,IAAc2G,MAAM,CAACvH,MAAP,EAAzB;EACA;;;;EAGA,SAAK0S,kBAAL,GAA0BkB,QAAQ,GAAG,UAAH,GAAgB,QAAlD;EACA;;;;EAGA,SAAKC,OAAL,GAAeF,MAAM,CAACE,OAAP,IAAkB,IAAjC;EACA;;;;EAGA,SAAKd,MAAL,GAAca,QAAQ,GAAGzB,cAAH,GAAoBH,YAA1C;EACA;;;;EAGA,SAAK8B,eAAL,GAAuB,IAAvB;EACD;EAED;;;;;;;;;;;aASO/J,aAAP,oBAAkBhN,KAAlB,EAAyBkD,IAAzB,EAA+B;EAC7B,WAAO0S,QAAQ,CAAC/H,UAAT,CAAoBnX,MAAM,CAACqF,MAAP,CAAc;EAAEsW,MAAAA,YAAY,EAAErS;EAAhB,KAAd,EAAuCkD,IAAvC,CAApB,CAAP;EACD;EAED;;;;;;;;;;;;;;;;;;;;aAkBO2K,aAAP,oBAAkBxV,GAAlB,EAAuB;EACrB,QAAIA,GAAG,IAAI,IAAP,IAAe,OAAOA,GAAP,KAAe,QAAlC,EAA4C;EAC1C,YAAM,IAAIpE,oBAAJ,mEAEFoE,GAAG,KAAK,IAAR,GAAe,MAAf,GAAwB,OAAOA,GAF7B,EAAN;EAKD;;EACD,WAAO,IAAIud,QAAJ,CAAa;EAClBF,MAAAA,MAAM,EAAEjY,eAAe,CAACpF,GAAD,EAAMud,QAAQ,CAACoB,aAAf,EAA8B,CACnD,QADmD,EAEnD,iBAFmD,EAGnD,oBAHmD,EAInD,MAJmD;EAAA,OAA9B,CADL;EAOlBnT,MAAAA,GAAG,EAAE2G,MAAM,CAACqD,UAAP,CAAkBxV,GAAlB,CAPa;EAQlBsd,MAAAA,kBAAkB,EAAEtd,GAAG,CAACsd;EARN,KAAb,CAAP;EAUD;EAED;;;;;;;;;;;;;;;aAaOsB,UAAP,iBAAeC,IAAf,EAAqBhU,IAArB,EAA2B;EAAA,4BACRuR,gBAAgB,CAACyC,IAAD,CADR;EAAA,QAClBjb,MADkB;;EAEzB,QAAIA,MAAJ,EAAY;EACV,UAAM5D,GAAG,GAAG3B,MAAM,CAACqF,MAAP,CAAcE,MAAd,EAAsBiH,IAAtB,CAAZ;EACA,aAAO0S,QAAQ,CAAC/H,UAAT,CAAoBxV,GAApB,CAAP;EACD,KAHD,MAGO;EACL,aAAOud,QAAQ,CAACkB,OAAT,CAAiB,YAAjB,mBAA6CI,IAA7C,oCAAP;EACD;EACF;EAED;;;;;;;;aAMOJ,UAAP,iBAAepjB,MAAf,EAAuBoT,WAAvB,EAA2C;EAAA,QAApBA,WAAoB;EAApBA,MAAAA,WAAoB,GAAN,IAAM;EAAA;;EACzC,QAAI,CAACpT,MAAL,EAAa;EACX,YAAM,IAAIO,oBAAJ,CAAyB,kDAAzB,CAAN;EACD;;EAED,QAAM6iB,OAAO,GAAGpjB,MAAM,YAAYmT,OAAlB,GAA4BnT,MAA5B,GAAqC,IAAImT,OAAJ,CAAYnT,MAAZ,EAAoBoT,WAApB,CAArD;;EAEA,QAAIwD,QAAQ,CAACD,cAAb,EAA6B;EAC3B,YAAM,IAAIxW,oBAAJ,CAAyBijB,OAAzB,CAAN;EACD,KAFD,MAEO;EACL,aAAO,IAAIlB,QAAJ,CAAa;EAAEkB,QAAAA,OAAO,EAAPA;EAAF,OAAb,CAAP;EACD;EACF;EAED;;;;;aAGOE,gBAAP,uBAAqBhjB,IAArB,EAA2B;EACzB,QAAM4J,UAAU,GAAG;EACjBrJ,MAAAA,IAAI,EAAE,OADW;EAEjB6L,MAAAA,KAAK,EAAE,OAFU;EAGjB0F,MAAAA,OAAO,EAAE,UAHQ;EAIjBzF,MAAAA,QAAQ,EAAE,UAJO;EAKjB7L,MAAAA,KAAK,EAAE,QALU;EAMjBwK,MAAAA,MAAM,EAAE,QANS;EAOjBmY,MAAAA,IAAI,EAAE,OAPW;EAQjB7W,MAAAA,KAAK,EAAE,OARU;EASjB7L,MAAAA,GAAG,EAAE,MATY;EAUjB8L,MAAAA,IAAI,EAAE,MAVW;EAWjBxL,MAAAA,IAAI,EAAE,OAXW;EAYjBmJ,MAAAA,KAAK,EAAE,OAZU;EAajBlJ,MAAAA,MAAM,EAAE,SAbS;EAcjBmJ,MAAAA,OAAO,EAAE,SAdQ;EAejBjJ,MAAAA,MAAM,EAAE,SAfS;EAgBjBsL,MAAAA,OAAO,EAAE,SAhBQ;EAiBjB1F,MAAAA,WAAW,EAAE,cAjBI;EAkBjBuX,MAAAA,YAAY,EAAE;EAlBG,MAmBjBre,IAAI,GAAGA,IAAI,CAACqI,WAAL,EAAH,GAAwBrI,IAnBX,CAAnB;EAqBA,QAAI,CAAC4J,UAAL,EAAiB,MAAM,IAAI7J,gBAAJ,CAAqBC,IAArB,CAAN;EAEjB,WAAO4J,UAAP;EACD;EAED;;;;;;;aAKOwZ,aAAP,oBAAkB/gB,CAAlB,EAAqB;EACnB,WAAQA,CAAC,IAAIA,CAAC,CAAC0gB,eAAR,IAA4B,KAAnC;EACD;EAED;;;;;;;;EAiBA;;;;;;;;;;;;;;;;;;;;WAoBAM,WAAA,kBAASjU,GAAT,EAAcF,IAAd,EAAyB;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACvB;EACA,QAAMoU,OAAO,GAAG5gB,MAAM,CAACqF,MAAP,CAAc,EAAd,EAAkBmH,IAAlB,EAAwB;EACtCjK,MAAAA,KAAK,EAAEiK,IAAI,CAAC9I,KAAL,KAAe,KAAf,IAAwB8I,IAAI,CAACjK,KAAL,KAAe;EADR,KAAxB,CAAhB;EAGA,WAAO,KAAKkM,OAAL,GACHnC,SAAS,CAACC,MAAV,CAAiB,KAAKY,GAAtB,EAA2ByT,OAA3B,EAAoCvR,wBAApC,CAA6D,IAA7D,EAAmE3C,GAAnE,CADG,GAEH2R,OAFJ;EAGD;EAED;;;;;;;;;WAOAwC,WAAA,kBAASrU,IAAT,EAAoB;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAClB,QAAI,CAAC,KAAKiC,OAAV,EAAmB,OAAO,EAAP;EAEnB,QAAM7G,IAAI,GAAG5H,MAAM,CAACqF,MAAP,CAAc,EAAd,EAAkB,KAAK2Z,MAAvB,CAAb;;EAEA,QAAIxS,IAAI,CAACsU,aAAT,EAAwB;EACtBlZ,MAAAA,IAAI,CAACqX,kBAAL,GAA0B,KAAKA,kBAA/B;EACArX,MAAAA,IAAI,CAACoM,eAAL,GAAuB,KAAK7G,GAAL,CAAS6G,eAAhC;EACApM,MAAAA,IAAI,CAAC5C,MAAL,GAAc,KAAKmI,GAAL,CAASnI,MAAvB;EACD;;EACD,WAAO4C,IAAP;EACD;EAED;;;;;;;;;;;;WAUAmZ,QAAA,iBAAQ;EACN;EACA,QAAI,CAAC,KAAKtS,OAAV,EAAmB,OAAO,IAAP;EAEnB,QAAI/Q,CAAC,GAAG,GAAR;EACA,QAAI,KAAKgM,KAAL,KAAe,CAAnB,EAAsBhM,CAAC,IAAI,KAAKgM,KAAL,GAAa,GAAlB;EACtB,QAAI,KAAKpB,MAAL,KAAgB,CAAhB,IAAqB,KAAKqB,QAAL,KAAkB,CAA3C,EAA8CjM,CAAC,IAAI,KAAK4K,MAAL,GAAc,KAAKqB,QAAL,GAAgB,CAA9B,GAAkC,GAAvC;EAC9C,QAAI,KAAKC,KAAL,KAAe,CAAnB,EAAsBlM,CAAC,IAAI,KAAKkM,KAAL,GAAa,GAAlB;EACtB,QAAI,KAAKC,IAAL,KAAc,CAAlB,EAAqBnM,CAAC,IAAI,KAAKmM,IAAL,GAAY,GAAjB;EACrB,QAAI,KAAKrC,KAAL,KAAe,CAAf,IAAoB,KAAKC,OAAL,KAAiB,CAArC,IAA0C,KAAKqC,OAAL,KAAiB,CAA3D,IAAgE,KAAK6R,YAAL,KAAsB,CAA1F,EACEje,CAAC,IAAI,GAAL;EACF,QAAI,KAAK8J,KAAL,KAAe,CAAnB,EAAsB9J,CAAC,IAAI,KAAK8J,KAAL,GAAa,GAAlB;EACtB,QAAI,KAAKC,OAAL,KAAiB,CAArB,EAAwB/J,CAAC,IAAI,KAAK+J,OAAL,GAAe,GAApB;EACxB,QAAI,KAAKqC,OAAL,KAAiB,CAAjB,IAAsB,KAAK6R,YAAL,KAAsB,CAAhD;EAEE;EACAje,MAAAA,CAAC,IAAIyF,OAAO,CAAC,KAAK2G,OAAL,GAAe,KAAK6R,YAAL,GAAoB,IAApC,EAA0C,CAA1C,CAAP,GAAsD,GAA3D;EACF,QAAIje,CAAC,KAAK,GAAV,EAAeA,CAAC,IAAI,KAAL;EACf,WAAOA,CAAP;EACD;EAED;;;;;;WAIAsjB,SAAA,kBAAS;EACP,WAAO,KAAKD,KAAL,EAAP;EACD;EAED;;;;;;WAIA7gB,WAAA,oBAAW;EACT,WAAO,KAAK6gB,KAAL,EAAP;EACD;EAED;;;;;;WAIAE,UAAA,mBAAU;EACR,WAAO,KAAKC,EAAL,CAAQ,cAAR,CAAP;EACD;EAED;;;;;;;WAKAC,OAAA,cAAKC,QAAL,EAAe;EACb,QAAI,CAAC,KAAK3S,OAAV,EAAmB,OAAO,IAAP;EAEnB,QAAMa,GAAG,GAAG+R,gBAAgB,CAACD,QAAD,CAA5B;EAAA,QACE5E,MAAM,GAAG,EADX;;EAGA,yDAAgBmC,YAAhB,wCAA8B;EAAA,UAAnB7c,CAAmB;;EAC5B,UAAIC,cAAc,CAACuN,GAAG,CAAC0P,MAAL,EAAald,CAAb,CAAd,IAAiCC,cAAc,CAAC,KAAKid,MAAN,EAAcld,CAAd,CAAnD,EAAqE;EACnE0a,QAAAA,MAAM,CAAC1a,CAAD,CAAN,GAAYwN,GAAG,CAACI,GAAJ,CAAQ5N,CAAR,IAAa,KAAK4N,GAAL,CAAS5N,CAAT,CAAzB;EACD;EACF;;EAED,WAAOkW,KAAK,CAAC,IAAD,EAAO;EAAEgH,MAAAA,MAAM,EAAExC;EAAV,KAAP,EAA2B,IAA3B,CAAZ;EACD;EAED;;;;;;;WAKA8E,QAAA,eAAMF,QAAN,EAAgB;EACd,QAAI,CAAC,KAAK3S,OAAV,EAAmB,OAAO,IAAP;EAEnB,QAAMa,GAAG,GAAG+R,gBAAgB,CAACD,QAAD,CAA5B;EACA,WAAO,KAAKD,IAAL,CAAU7R,GAAG,CAACiS,MAAJ,EAAV,CAAP;EACD;EAED;;;;;;;;;WAOAC,WAAA,kBAASC,EAAT,EAAa;EACX,QAAI,CAAC,KAAKhT,OAAV,EAAmB,OAAO,IAAP;EACnB,QAAM+N,MAAM,GAAG,EAAf;;EACA,oCAAgBxc,MAAM,CAAC4B,IAAP,CAAY,KAAKod,MAAjB,CAAhB,kCAA0C;EAArC,UAAMld,CAAC,mBAAP;EACH0a,MAAAA,MAAM,CAAC1a,CAAD,CAAN,GAAY+E,QAAQ,CAAC4a,EAAE,CAAC,KAAKzC,MAAL,CAAYld,CAAZ,CAAD,EAAiBA,CAAjB,CAAH,CAApB;EACD;;EACD,WAAOkW,KAAK,CAAC,IAAD,EAAO;EAAEgH,MAAAA,MAAM,EAAExC;EAAV,KAAP,EAA2B,IAA3B,CAAZ;EACD;EAED;;;;;;;;;;WAQA9M,MAAA,aAAIpS,IAAJ,EAAU;EACR,WAAO,KAAK4hB,QAAQ,CAACoB,aAAT,CAAuBhjB,IAAvB,CAAL,CAAP;EACD;EAED;;;;;;;;;WAOAokB,MAAA,aAAI1C,MAAJ,EAAY;EACV,QAAI,CAAC,KAAKvQ,OAAV,EAAmB,OAAO,IAAP;EAEnB,QAAMkT,KAAK,GAAG3hB,MAAM,CAACqF,MAAP,CAAc,KAAK2Z,MAAnB,EAA2BjY,eAAe,CAACiY,MAAD,EAASE,QAAQ,CAACoB,aAAlB,EAAiC,EAAjC,CAA1C,CAAd;EACA,WAAOtI,KAAK,CAAC,IAAD,EAAO;EAAEgH,MAAAA,MAAM,EAAE2C;EAAV,KAAP,CAAZ;EACD;EAED;;;;;;;WAKAC,cAAA,4BAAkE;EAAA,kCAAJ,EAAI;EAAA,QAApD5c,MAAoD,QAApDA,MAAoD;EAAA,QAA5CgP,eAA4C,QAA5CA,eAA4C;EAAA,QAA3BiL,kBAA2B,QAA3BA,kBAA2B;;EAChE,QAAM9R,GAAG,GAAG,KAAKA,GAAL,CAAS6K,KAAT,CAAe;EAAEhT,MAAAA,MAAM,EAANA,MAAF;EAAUgP,MAAAA,eAAe,EAAfA;EAAV,KAAf,CAAZ;EAAA,QACExH,IAAI,GAAG;EAAEW,MAAAA,GAAG,EAAHA;EAAF,KADT;;EAGA,QAAI8R,kBAAJ,EAAwB;EACtBzS,MAAAA,IAAI,CAACyS,kBAAL,GAA0BA,kBAA1B;EACD;;EAED,WAAOjH,KAAK,CAAC,IAAD,EAAOxL,IAAP,CAAZ;EACD;EAED;;;;;;;;;;WAQA0U,KAAA,YAAG5jB,IAAH,EAAS;EACP,WAAO,KAAKmR,OAAL,GAAe,KAAKuB,OAAL,CAAa1S,IAAb,EAAmBoS,GAAnB,CAAuBpS,IAAvB,CAAf,GAA8C6V,GAArD;EACD;EAED;;;;;;;;WAMA0O,YAAA,qBAAY;EACV,QAAI,CAAC,KAAKpT,OAAV,EAAmB,OAAO,IAAP;EACnB,QAAMuR,IAAI,GAAG,KAAKa,QAAL,EAAb;EACAd,IAAAA,eAAe,CAAC,KAAKT,MAAN,EAAcU,IAAd,CAAf;EACA,WAAOhI,KAAK,CAAC,IAAD,EAAO;EAAEgH,MAAAA,MAAM,EAAEgB;EAAV,KAAP,EAAyB,IAAzB,CAAZ;EACD;EAED;;;;;;;WAKAhQ,UAAA,mBAAkB;EAAA,sCAAPvG,KAAO;EAAPA,MAAAA,KAAO;EAAA;;EAChB,QAAI,CAAC,KAAKgF,OAAV,EAAmB,OAAO,IAAP;;EAEnB,QAAIhF,KAAK,CAACrI,MAAN,KAAiB,CAArB,EAAwB;EACtB,aAAO,IAAP;EACD;;EAEDqI,IAAAA,KAAK,GAAGA,KAAK,CAACwG,GAAN,CAAU,UAAA9I,CAAC;EAAA,aAAI+X,QAAQ,CAACoB,aAAT,CAAuBnZ,CAAvB,CAAJ;EAAA,KAAX,CAAR;EAEA,QAAM2a,KAAK,GAAG,EAAd;EAAA,QACEC,WAAW,GAAG,EADhB;EAAA,QAEE/B,IAAI,GAAG,KAAKa,QAAL,EAFT;EAGA,QAAImB,QAAJ;EAEAjC,IAAAA,eAAe,CAAC,KAAKT,MAAN,EAAcU,IAAd,CAAf;;EAEA,0DAAgBrB,YAAhB,2CAA8B;EAAA,UAAnB7c,CAAmB;;EAC5B,UAAI2H,KAAK,CAACrC,OAAN,CAActF,CAAd,KAAoB,CAAxB,EAA2B;EACzBkgB,QAAAA,QAAQ,GAAGlgB,CAAX;EAEA,YAAImgB,GAAG,GAAG,CAAV,CAHyB;;EAMzB,aAAK,IAAMC,EAAX,IAAiBH,WAAjB,EAA8B;EAC5BE,UAAAA,GAAG,IAAI,KAAK3C,MAAL,CAAY4C,EAAZ,EAAgBpgB,CAAhB,IAAqBigB,WAAW,CAACG,EAAD,CAAvC;EACAH,UAAAA,WAAW,CAACG,EAAD,CAAX,GAAkB,CAAlB;EACD,SATwB;;;EAYzB,YAAItiB,QAAQ,CAACogB,IAAI,CAACle,CAAD,CAAL,CAAZ,EAAuB;EACrBmgB,UAAAA,GAAG,IAAIjC,IAAI,CAACle,CAAD,CAAX;EACD;;EAED,YAAMgL,CAAC,GAAGxK,IAAI,CAACmB,KAAL,CAAWwe,GAAX,CAAV;EACAH,QAAAA,KAAK,CAAChgB,CAAD,CAAL,GAAWgL,CAAX;EACAiV,QAAAA,WAAW,CAACjgB,CAAD,CAAX,GAAiBmgB,GAAG,GAAGnV,CAAvB,CAlByB;EAoBzB;;EACA,aAAK,IAAMqV,IAAX,IAAmBnC,IAAnB,EAAyB;EACvB,cAAIrB,YAAY,CAACvX,OAAb,CAAqB+a,IAArB,IAA6BxD,YAAY,CAACvX,OAAb,CAAqBtF,CAArB,CAAjC,EAA0D;EACxDud,YAAAA,OAAO,CAAC,KAAKC,MAAN,EAAcU,IAAd,EAAoBmC,IAApB,EAA0BL,KAA1B,EAAiChgB,CAAjC,CAAP;EACD;EACF,SAzBwB;;EA2B1B,OA3BD,MA2BO,IAAIlC,QAAQ,CAACogB,IAAI,CAACle,CAAD,CAAL,CAAZ,EAAuB;EAC5BigB,QAAAA,WAAW,CAACjgB,CAAD,CAAX,GAAiBke,IAAI,CAACle,CAAD,CAArB;EACD;EACF,KA/Ce;EAkDhB;;;EACA,SAAK,IAAM2I,GAAX,IAAkBsX,WAAlB,EAA+B;EAC7B,UAAIA,WAAW,CAACtX,GAAD,CAAX,KAAqB,CAAzB,EAA4B;EAC1BqX,QAAAA,KAAK,CAACE,QAAD,CAAL,IACEvX,GAAG,KAAKuX,QAAR,GAAmBD,WAAW,CAACtX,GAAD,CAA9B,GAAsCsX,WAAW,CAACtX,GAAD,CAAX,GAAmB,KAAK6U,MAAL,CAAY0C,QAAZ,EAAsBvX,GAAtB,CAD3D;EAED;EACF;;EAED,WAAOuN,KAAK,CAAC,IAAD,EAAO;EAAEgH,MAAAA,MAAM,EAAE8C;EAAV,KAAP,EAA0B,IAA1B,CAAL,CAAqCD,SAArC,EAAP;EACD;EAED;;;;;;;WAKAN,SAAA,kBAAS;EACP,QAAI,CAAC,KAAK9S,OAAV,EAAmB,OAAO,IAAP;EACnB,QAAM2T,OAAO,GAAG,EAAhB;;EACA,sCAAgBpiB,MAAM,CAAC4B,IAAP,CAAY,KAAKod,MAAjB,CAAhB,qCAA0C;EAArC,UAAMld,CAAC,qBAAP;EACHsgB,MAAAA,OAAO,CAACtgB,CAAD,CAAP,GAAa,CAAC,KAAKkd,MAAL,CAAYld,CAAZ,CAAd;EACD;;EACD,WAAOkW,KAAK,CAAC,IAAD,EAAO;EAAEgH,MAAAA,MAAM,EAAEoD;EAAV,KAAP,EAA4B,IAA5B,CAAZ;EACD;EAED;;;;;;EAiGA;;;;;;WAMA9R,SAAA,gBAAOoI,KAAP,EAAc;EACZ,QAAI,CAAC,KAAKjK,OAAN,IAAiB,CAACiK,KAAK,CAACjK,OAA5B,EAAqC;EACnC,aAAO,KAAP;EACD;;EAED,QAAI,CAAC,KAAKtB,GAAL,CAASmD,MAAT,CAAgBoI,KAAK,CAACvL,GAAtB,CAAL,EAAiC;EAC/B,aAAO,KAAP;EACD;;EAED,0DAAgBwR,YAAhB,2CAA8B;EAAA,UAAnBxX,CAAmB;;EAC5B,UAAI,KAAK6X,MAAL,CAAY7X,CAAZ,MAAmBuR,KAAK,CAACsG,MAAN,CAAa7X,CAAb,CAAvB,EAAwC;EACtC,eAAO,KAAP;EACD;EACF;;EACD,WAAO,IAAP;EACD;;;;0BA/aY;EACX,aAAO,KAAKsH,OAAL,GAAe,KAAKtB,GAAL,CAASnI,MAAxB,GAAiC,IAAxC;EACD;EAED;;;;;;;;0BAKsB;EACpB,aAAO,KAAKyJ,OAAL,GAAe,KAAKtB,GAAL,CAAS6G,eAAxB,GAA0C,IAAjD;EACD;;;0BAkTW;EACV,aAAO,KAAKvF,OAAL,GAAe,KAAKuQ,MAAL,CAAYtV,KAAZ,IAAqB,CAApC,GAAwCyJ,GAA/C;EACD;EAED;;;;;;;0BAIe;EACb,aAAO,KAAK1E,OAAL,GAAe,KAAKuQ,MAAL,CAAYrV,QAAZ,IAAwB,CAAvC,GAA2CwJ,GAAlD;EACD;EAED;;;;;;;0BAIa;EACX,aAAO,KAAK1E,OAAL,GAAe,KAAKuQ,MAAL,CAAY1W,MAAZ,IAAsB,CAArC,GAAyC6K,GAAhD;EACD;EAED;;;;;;;0BAIY;EACV,aAAO,KAAK1E,OAAL,GAAe,KAAKuQ,MAAL,CAAYpV,KAAZ,IAAqB,CAApC,GAAwCuJ,GAA/C;EACD;EAED;;;;;;;0BAIW;EACT,aAAO,KAAK1E,OAAL,GAAe,KAAKuQ,MAAL,CAAYnV,IAAZ,IAAoB,CAAnC,GAAuCsJ,GAA9C;EACD;EAED;;;;;;;0BAIY;EACV,aAAO,KAAK1E,OAAL,GAAe,KAAKuQ,MAAL,CAAYxX,KAAZ,IAAqB,CAApC,GAAwC2L,GAA/C;EACD;EAED;;;;;;;0BAIc;EACZ,aAAO,KAAK1E,OAAL,GAAe,KAAKuQ,MAAL,CAAYvX,OAAZ,IAAuB,CAAtC,GAA0C0L,GAAjD;EACD;EAED;;;;;;;0BAIc;EACZ,aAAO,KAAK1E,OAAL,GAAe,KAAKuQ,MAAL,CAAYlV,OAAZ,IAAuB,CAAtC,GAA0CqJ,GAAjD;EACD;EAED;;;;;;;0BAImB;EACjB,aAAO,KAAK1E,OAAL,GAAe,KAAKuQ,MAAL,CAAYrD,YAAZ,IAA4B,CAA3C,GAA+CxI,GAAtD;EACD;EAED;;;;;;;;0BAKc;EACZ,aAAO,KAAKiN,OAAL,KAAiB,IAAxB;EACD;EAED;;;;;;;0BAIoB;EAClB,aAAO,KAAKA,OAAL,GAAe,KAAKA,OAAL,CAAapjB,MAA5B,GAAqC,IAA5C;EACD;EAED;;;;;;;0BAIyB;EACvB,aAAO,KAAKojB,OAAL,GAAe,KAAKA,OAAL,CAAahQ,WAA5B,GAA0C,IAAjD;EACD;;;;;EA6BI,SAASiR,gBAAT,CAA0BgB,WAA1B,EAAuC;EAC5C,MAAIziB,QAAQ,CAACyiB,WAAD,CAAZ,EAA2B;EACzB,WAAOnD,QAAQ,CAAC5I,UAAT,CAAoB+L,WAApB,CAAP;EACD,GAFD,MAEO,IAAInD,QAAQ,CAACwB,UAAT,CAAoB2B,WAApB,CAAJ,EAAsC;EAC3C,WAAOA,WAAP;EACD,GAFM,MAEA,IAAI,OAAOA,WAAP,KAAuB,QAA3B,EAAqC;EAC1C,WAAOnD,QAAQ,CAAC/H,UAAT,CAAoBkL,WAApB,CAAP;EACD,GAFM,MAEA;EACL,UAAM,IAAI9kB,oBAAJ,gCACyB8kB,WADzB,iBACgD,OAAOA,WADvD,CAAN;EAGD;EACF;;EC7wBD,IAAMhE,SAAO,GAAG,kBAAhB;;EAGA,SAASiE,gBAAT,CAA0BC,KAA1B,EAAiCC,GAAjC,EAAsC;EACpC,MAAI,CAACD,KAAD,IAAU,CAACA,KAAK,CAAC9T,OAArB,EAA8B;EAC5B,WAAOgU,QAAQ,CAACrC,OAAT,CAAiB,0BAAjB,CAAP;EACD,GAFD,MAEO,IAAI,CAACoC,GAAD,IAAQ,CAACA,GAAG,CAAC/T,OAAjB,EAA0B;EAC/B,WAAOgU,QAAQ,CAACrC,OAAT,CAAiB,wBAAjB,CAAP;EACD,GAFM,MAEA,IAAIoC,GAAG,GAAGD,KAAV,EAAiB;EACtB,WAAOE,QAAQ,CAACrC,OAAT,CACL,kBADK,yEAEgEmC,KAAK,CAACxB,KAAN,EAFhE,iBAEyFyB,GAAG,CAACzB,KAAJ,EAFzF,CAAP;EAID,GALM,MAKA;EACL,WAAO,IAAP;EACD;EACF;EAED;;;;;;;;;;;;;;MAYqB0B;EACnB;;;EAGA,oBAAYvC,MAAZ,EAAoB;EAClB;;;EAGA,SAAKxiB,CAAL,GAASwiB,MAAM,CAACqC,KAAhB;EACA;;;;EAGA,SAAKhiB,CAAL,GAAS2f,MAAM,CAACsC,GAAhB;EACA;;;;EAGA,SAAKpC,OAAL,GAAeF,MAAM,CAACE,OAAP,IAAkB,IAAjC;EACA;;;;EAGA,SAAKsC,eAAL,GAAuB,IAAvB;EACD;EAED;;;;;;;;aAMOtC,UAAP,iBAAepjB,MAAf,EAAuBoT,WAAvB,EAA2C;EAAA,QAApBA,WAAoB;EAApBA,MAAAA,WAAoB,GAAN,IAAM;EAAA;;EACzC,QAAI,CAACpT,MAAL,EAAa;EACX,YAAM,IAAIO,oBAAJ,CAAyB,kDAAzB,CAAN;EACD;;EAED,QAAM6iB,OAAO,GAAGpjB,MAAM,YAAYmT,OAAlB,GAA4BnT,MAA5B,GAAqC,IAAImT,OAAJ,CAAYnT,MAAZ,EAAoBoT,WAApB,CAArD;;EAEA,QAAIwD,QAAQ,CAACD,cAAb,EAA6B;EAC3B,YAAM,IAAIzW,oBAAJ,CAAyBkjB,OAAzB,CAAN;EACD,KAFD,MAEO;EACL,aAAO,IAAIqC,QAAJ,CAAa;EAAErC,QAAAA,OAAO,EAAPA;EAAF,OAAb,CAAP;EACD;EACF;EAED;;;;;;;;aAMOuC,gBAAP,uBAAqBJ,KAArB,EAA4BC,GAA5B,EAAiC;EAC/B,QAAMI,UAAU,GAAGC,gBAAgB,CAACN,KAAD,CAAnC;EAAA,QACEO,QAAQ,GAAGD,gBAAgB,CAACL,GAAD,CAD7B;EAGA,QAAMO,aAAa,GAAGT,gBAAgB,CAACM,UAAD,EAAaE,QAAb,CAAtC;;EAEA,QAAIC,aAAa,IAAI,IAArB,EAA2B;EACzB,aAAO,IAAIN,QAAJ,CAAa;EAClBF,QAAAA,KAAK,EAAEK,UADW;EAElBJ,QAAAA,GAAG,EAAEM;EAFa,OAAb,CAAP;EAID,KALD,MAKO;EACL,aAAOC,aAAP;EACD;EACF;EAED;;;;;;;;aAMOC,QAAP,eAAaT,KAAb,EAAoBnB,QAApB,EAA8B;EAC5B,QAAM9R,GAAG,GAAG+R,gBAAgB,CAACD,QAAD,CAA5B;EAAA,QACEnY,EAAE,GAAG4Z,gBAAgB,CAACN,KAAD,CADvB;EAEA,WAAOE,QAAQ,CAACE,aAAT,CAAuB1Z,EAAvB,EAA2BA,EAAE,CAACkY,IAAH,CAAQ7R,GAAR,CAA3B,CAAP;EACD;EAED;;;;;;;;aAMO2T,SAAP,gBAAcT,GAAd,EAAmBpB,QAAnB,EAA6B;EAC3B,QAAM9R,GAAG,GAAG+R,gBAAgB,CAACD,QAAD,CAA5B;EAAA,QACEnY,EAAE,GAAG4Z,gBAAgB,CAACL,GAAD,CADvB;EAEA,WAAOC,QAAQ,CAACE,aAAT,CAAuB1Z,EAAE,CAACqY,KAAH,CAAShS,GAAT,CAAvB,EAAsCrG,EAAtC,CAAP;EACD;EAED;;;;;;;;;;aAQOsX,UAAP,iBAAeC,IAAf,EAAqBhU,IAArB,EAA2B;EAAA,iBACV,CAACgU,IAAI,IAAI,EAAT,EAAa0C,KAAb,CAAmB,GAAnB,EAAwB,CAAxB,CADU;EAAA,QAClBxlB,CADkB;EAAA,QACf6C,CADe;;EAEzB,QAAI7C,CAAC,IAAI6C,CAAT,EAAY;EACV,UAAMgiB,KAAK,GAAGhN,QAAQ,CAACgL,OAAT,CAAiB7iB,CAAjB,EAAoB8O,IAApB,CAAd;EAAA,UACEgW,GAAG,GAAGjN,QAAQ,CAACgL,OAAT,CAAiBhgB,CAAjB,EAAoBiM,IAApB,CADR;;EAGA,UAAI+V,KAAK,CAAC9T,OAAN,IAAiB+T,GAAG,CAAC/T,OAAzB,EAAkC;EAChC,eAAOgU,QAAQ,CAACE,aAAT,CAAuBJ,KAAvB,EAA8BC,GAA9B,CAAP;EACD;;EAED,UAAID,KAAK,CAAC9T,OAAV,EAAmB;EACjB,YAAMa,GAAG,GAAG4P,QAAQ,CAACqB,OAAT,CAAiBhgB,CAAjB,EAAoBiM,IAApB,CAAZ;;EACA,YAAI8C,GAAG,CAACb,OAAR,EAAiB;EACf,iBAAOgU,QAAQ,CAACO,KAAT,CAAeT,KAAf,EAAsBjT,GAAtB,CAAP;EACD;EACF,OALD,MAKO,IAAIkT,GAAG,CAAC/T,OAAR,EAAiB;EACtB,YAAMa,IAAG,GAAG4P,QAAQ,CAACqB,OAAT,CAAiB7iB,CAAjB,EAAoB8O,IAApB,CAAZ;;EACA,YAAI8C,IAAG,CAACb,OAAR,EAAiB;EACf,iBAAOgU,QAAQ,CAACQ,MAAT,CAAgBT,GAAhB,EAAqBlT,IAArB,CAAP;EACD;EACF;EACF;;EACD,WAAOmT,QAAQ,CAACrC,OAAT,CAAiB,YAAjB,mBAA6CI,IAA7C,oCAAP;EACD;EAED;;;;;;;aAKO2C,aAAP,oBAAkBxjB,CAAlB,EAAqB;EACnB,WAAQA,CAAC,IAAIA,CAAC,CAAC+iB,eAAR,IAA4B,KAAnC;EACD;EAED;;;;;;;;EAwCA;;;;;WAKAthB,SAAA,gBAAO9D,IAAP,EAA8B;EAAA,QAAvBA,IAAuB;EAAvBA,MAAAA,IAAuB,GAAhB,cAAgB;EAAA;;EAC5B,WAAO,KAAKmR,OAAL,GAAe,KAAK2U,UAAL,aAAmB,CAAC9lB,IAAD,CAAnB,EAA2BoS,GAA3B,CAA+BpS,IAA/B,CAAf,GAAsD6V,GAA7D;EACD;EAED;;;;;;;;;WAOA7J,QAAA,eAAMhM,IAAN,EAA6B;EAAA,QAAvBA,IAAuB;EAAvBA,MAAAA,IAAuB,GAAhB,cAAgB;EAAA;;EAC3B,QAAI,CAAC,KAAKmR,OAAV,EAAmB,OAAO0E,GAAP;EACnB,QAAMoP,KAAK,GAAG,KAAKA,KAAL,CAAWc,OAAX,CAAmB/lB,IAAnB,CAAd;EAAA,QACEklB,GAAG,GAAG,KAAKA,GAAL,CAASa,OAAT,CAAiB/lB,IAAjB,CADR;EAEA,WAAOgF,IAAI,CAACC,KAAL,CAAWigB,GAAG,CAACc,IAAJ,CAASf,KAAT,EAAgBjlB,IAAhB,EAAsBoS,GAAtB,CAA0BpS,IAA1B,CAAX,IAA8C,CAArD;EACD;EAED;;;;;;;WAKAimB,UAAA,iBAAQjmB,IAAR,EAAc;EACZ,WAAO,KAAKmR,OAAL,GAAe,KAAKlO,CAAL,CAAO+gB,KAAP,CAAa,CAAb,EAAgBiC,OAAhB,CAAwB,KAAK7lB,CAA7B,EAAgCJ,IAAhC,CAAf,GAAuD,KAA9D;EACD;EAED;;;;;;WAIAkmB,UAAA,mBAAU;EACR,WAAO,KAAK9lB,CAAL,CAAOujB,OAAP,OAAqB,KAAK1gB,CAAL,CAAO0gB,OAAP,EAA5B;EACD;EAED;;;;;;;WAKAwC,UAAA,iBAAQC,QAAR,EAAkB;EAChB,QAAI,CAAC,KAAKjV,OAAV,EAAmB,OAAO,KAAP;EACnB,WAAO,KAAK/Q,CAAL,GAASgmB,QAAhB;EACD;EAED;;;;;;;WAKAC,WAAA,kBAASD,QAAT,EAAmB;EACjB,QAAI,CAAC,KAAKjV,OAAV,EAAmB,OAAO,KAAP;EACnB,WAAO,KAAKlO,CAAL,IAAUmjB,QAAjB;EACD;EAED;;;;;;;WAKAE,WAAA,kBAASF,QAAT,EAAmB;EACjB,QAAI,CAAC,KAAKjV,OAAV,EAAmB,OAAO,KAAP;EACnB,WAAO,KAAK/Q,CAAL,IAAUgmB,QAAV,IAAsB,KAAKnjB,CAAL,GAASmjB,QAAtC;EACD;EAED;;;;;;;;;WAOAhC,MAAA,oBAAyB;EAAA,kCAAJ,EAAI;EAAA,QAAnBa,KAAmB,QAAnBA,KAAmB;EAAA,QAAZC,GAAY,QAAZA,GAAY;;EACvB,QAAI,CAAC,KAAK/T,OAAV,EAAmB,OAAO,IAAP;EACnB,WAAOgU,QAAQ,CAACE,aAAT,CAAuBJ,KAAK,IAAI,KAAK7kB,CAArC,EAAwC8kB,GAAG,IAAI,KAAKjiB,CAApD,CAAP;EACD;EAED;;;;;;;WAKAsjB,UAAA,mBAAsB;EAAA;;EACpB,QAAI,CAAC,KAAKpV,OAAV,EAAmB,OAAO,EAAP;;EADC,sCAAXqV,SAAW;EAAXA,MAAAA,SAAW;EAAA;;EAEpB,QAAMC,MAAM,GAAGD,SAAS,CACnB7T,GADU,CACN4S,gBADM,EAEV3S,MAFU,CAEH,UAAAjM,CAAC;EAAA,aAAI,KAAI,CAAC2f,QAAL,CAAc3f,CAAd,CAAJ;EAAA,KAFE,EAGViE,IAHU,EAAf;EAAA,QAIEoQ,OAAO,GAAG,EAJZ;EAKI,QAAE5a,CAAF,GAAQ,IAAR,CAAEA,CAAF;EAAA,QACFoP,CADE,GACE,CADF;;EAGJ,WAAOpP,CAAC,GAAG,KAAK6C,CAAhB,EAAmB;EACjB,UAAMuf,KAAK,GAAGiE,MAAM,CAACjX,CAAD,CAAN,IAAa,KAAKvM,CAAhC;EAAA,UACEiB,IAAI,GAAG,CAACse,KAAD,GAAS,CAAC,KAAKvf,CAAf,GAAmB,KAAKA,CAAxB,GAA4Buf,KADrC;EAEAxH,MAAAA,OAAO,CAACrL,IAAR,CAAawV,QAAQ,CAACE,aAAT,CAAuBjlB,CAAvB,EAA0B8D,IAA1B,CAAb;EACA9D,MAAAA,CAAC,GAAG8D,IAAJ;EACAsL,MAAAA,CAAC,IAAI,CAAL;EACD;;EAED,WAAOwL,OAAP;EACD;EAED;;;;;;;;WAMA0L,UAAA,iBAAQ5C,QAAR,EAAkB;EAChB,QAAM9R,GAAG,GAAG+R,gBAAgB,CAACD,QAAD,CAA5B;;EAEA,QAAI,CAAC,KAAK3S,OAAN,IAAiB,CAACa,GAAG,CAACb,OAAtB,IAAiCa,GAAG,CAAC4R,EAAJ,CAAO,cAAP,MAA2B,CAAhE,EAAmE;EACjE,aAAO,EAAP;EACD;;EAEG,QAAExjB,CAAF,GAAQ,IAAR,CAAEA,CAAF;EAAA,QACFoiB,KADE;EAAA,QAEFte,IAFE;EAIJ,QAAM8W,OAAO,GAAG,EAAhB;;EACA,WAAO5a,CAAC,GAAG,KAAK6C,CAAhB,EAAmB;EACjBuf,MAAAA,KAAK,GAAGpiB,CAAC,CAACyjB,IAAF,CAAO7R,GAAP,CAAR;EACA9N,MAAAA,IAAI,GAAG,CAACse,KAAD,GAAS,CAAC,KAAKvf,CAAf,GAAmB,KAAKA,CAAxB,GAA4Buf,KAAnC;EACAxH,MAAAA,OAAO,CAACrL,IAAR,CAAawV,QAAQ,CAACE,aAAT,CAAuBjlB,CAAvB,EAA0B8D,IAA1B,CAAb;EACA9D,MAAAA,CAAC,GAAG8D,IAAJ;EACD;;EAED,WAAO8W,OAAP;EACD;EAED;;;;;;;WAKA2L,gBAAA,uBAAcC,aAAd,EAA6B;EAC3B,QAAI,CAAC,KAAKzV,OAAV,EAAmB,OAAO,EAAP;EACnB,WAAO,KAAKuV,OAAL,CAAa,KAAK5iB,MAAL,KAAgB8iB,aAA7B,EAA4CvhB,KAA5C,CAAkD,CAAlD,EAAqDuhB,aAArD,CAAP;EACD;EAED;;;;;;;WAKAC,WAAA,kBAASzL,KAAT,EAAgB;EACd,WAAO,KAAKnY,CAAL,GAASmY,KAAK,CAAChb,CAAf,IAAoB,KAAKA,CAAL,GAASgb,KAAK,CAACnY,CAA1C;EACD;EAED;;;;;;;WAKA6jB,aAAA,oBAAW1L,KAAX,EAAkB;EAChB,QAAI,CAAC,KAAKjK,OAAV,EAAmB,OAAO,KAAP;EACnB,WAAO,CAAC,KAAKlO,CAAN,KAAY,CAACmY,KAAK,CAAChb,CAA1B;EACD;EAED;;;;;;;WAKA2mB,WAAA,kBAAS3L,KAAT,EAAgB;EACd,QAAI,CAAC,KAAKjK,OAAV,EAAmB,OAAO,KAAP;EACnB,WAAO,CAACiK,KAAK,CAACnY,CAAP,KAAa,CAAC,KAAK7C,CAA1B;EACD;EAED;;;;;;;WAKA4mB,UAAA,iBAAQ5L,KAAR,EAAe;EACb,QAAI,CAAC,KAAKjK,OAAV,EAAmB,OAAO,KAAP;EACnB,WAAO,KAAK/Q,CAAL,IAAUgb,KAAK,CAAChb,CAAhB,IAAqB,KAAK6C,CAAL,IAAUmY,KAAK,CAACnY,CAA5C;EACD;EAED;;;;;;;WAKA+P,SAAA,gBAAOoI,KAAP,EAAc;EACZ,QAAI,CAAC,KAAKjK,OAAN,IAAiB,CAACiK,KAAK,CAACjK,OAA5B,EAAqC;EACnC,aAAO,KAAP;EACD;;EAED,WAAO,KAAK/Q,CAAL,CAAO4S,MAAP,CAAcoI,KAAK,CAAChb,CAApB,KAA0B,KAAK6C,CAAL,CAAO+P,MAAP,CAAcoI,KAAK,CAACnY,CAApB,CAAjC;EACD;EAED;;;;;;;;;WAOAgkB,eAAA,sBAAa7L,KAAb,EAAoB;EAClB,QAAI,CAAC,KAAKjK,OAAV,EAAmB,OAAO,IAAP;EACnB,QAAM/Q,CAAC,GAAG,KAAKA,CAAL,GAASgb,KAAK,CAAChb,CAAf,GAAmB,KAAKA,CAAxB,GAA4Bgb,KAAK,CAAChb,CAA5C;EAAA,QACE6C,CAAC,GAAG,KAAKA,CAAL,GAASmY,KAAK,CAACnY,CAAf,GAAmB,KAAKA,CAAxB,GAA4BmY,KAAK,CAACnY,CADxC;;EAGA,QAAI7C,CAAC,GAAG6C,CAAR,EAAW;EACT,aAAO,IAAP;EACD,KAFD,MAEO;EACL,aAAOkiB,QAAQ,CAACE,aAAT,CAAuBjlB,CAAvB,EAA0B6C,CAA1B,CAAP;EACD;EACF;EAED;;;;;;;;WAMAikB,QAAA,eAAM9L,KAAN,EAAa;EACX,QAAI,CAAC,KAAKjK,OAAV,EAAmB,OAAO,IAAP;EACnB,QAAM/Q,CAAC,GAAG,KAAKA,CAAL,GAASgb,KAAK,CAAChb,CAAf,GAAmB,KAAKA,CAAxB,GAA4Bgb,KAAK,CAAChb,CAA5C;EAAA,QACE6C,CAAC,GAAG,KAAKA,CAAL,GAASmY,KAAK,CAACnY,CAAf,GAAmB,KAAKA,CAAxB,GAA4BmY,KAAK,CAACnY,CADxC;EAEA,WAAOkiB,QAAQ,CAACE,aAAT,CAAuBjlB,CAAvB,EAA0B6C,CAA1B,CAAP;EACD;EAED;;;;;;;;aAMOkkB,QAAP,eAAaC,SAAb,EAAwB;EAAA,gCACCA,SAAS,CAACxc,IAAV,CAAe,UAACrG,CAAD,EAAI8iB,CAAJ;EAAA,aAAU9iB,CAAC,CAACnE,CAAF,GAAMinB,CAAC,CAACjnB,CAAlB;EAAA,KAAf,EAAoC4D,MAApC,CACrB,iBAAmBmZ,IAAnB,EAA4B;EAAA,UAA1BmK,KAA0B;EAAA,UAAnBjY,OAAmB;;EAC1B,UAAI,CAACA,OAAL,EAAc;EACZ,eAAO,CAACiY,KAAD,EAAQnK,IAAR,CAAP;EACD,OAFD,MAEO,IAAI9N,OAAO,CAACwX,QAAR,CAAiB1J,IAAjB,KAA0B9N,OAAO,CAACyX,UAAR,CAAmB3J,IAAnB,CAA9B,EAAwD;EAC7D,eAAO,CAACmK,KAAD,EAAQjY,OAAO,CAAC6X,KAAR,CAAc/J,IAAd,CAAR,CAAP;EACD,OAFM,MAEA;EACL,eAAO,CAACmK,KAAK,CAAC9U,MAAN,CAAa,CAACnD,OAAD,CAAb,CAAD,EAA0B8N,IAA1B,CAAP;EACD;EACF,KAToB,EAUrB,CAAC,EAAD,EAAK,IAAL,CAVqB,CADD;EAAA,QACf5K,KADe;EAAA,QACRgV,KADQ;;EAatB,QAAIA,KAAJ,EAAW;EACThV,MAAAA,KAAK,CAAC5C,IAAN,CAAW4X,KAAX;EACD;;EACD,WAAOhV,KAAP;EACD;EAED;;;;;;;aAKOiV,MAAP,aAAWJ,SAAX,EAAsB;EAAA;;EACpB,QAAInC,KAAK,GAAG,IAAZ;EAAA,QACEwC,YAAY,GAAG,CADjB;;EAEA,QAAMzM,OAAO,GAAG,EAAhB;EAAA,QACE0M,IAAI,GAAGN,SAAS,CAACzU,GAAV,CAAc,UAAAnD,CAAC;EAAA,aAAI,CAAC;EAAEmY,QAAAA,IAAI,EAAEnY,CAAC,CAACpP,CAAV;EAAagI,QAAAA,IAAI,EAAE;EAAnB,OAAD,EAA2B;EAAEuf,QAAAA,IAAI,EAAEnY,CAAC,CAACvM,CAAV;EAAamF,QAAAA,IAAI,EAAE;EAAnB,OAA3B,CAAJ;EAAA,KAAf,CADT;EAAA,QAEEwf,SAAS,GAAG,oBAAApkB,KAAK,CAACb,SAAN,EAAgB6P,MAAhB,yBAA0BkV,IAA1B,CAFd;EAAA,QAGE/jB,GAAG,GAAGikB,SAAS,CAAChd,IAAV,CAAe,UAACrG,CAAD,EAAI8iB,CAAJ;EAAA,aAAU9iB,CAAC,CAACojB,IAAF,GAASN,CAAC,CAACM,IAArB;EAAA,KAAf,CAHR;;EAKA,yDAAgBhkB,GAAhB,wCAAqB;EAAA,UAAV6L,CAAU;EACnBiY,MAAAA,YAAY,IAAIjY,CAAC,CAACpH,IAAF,KAAW,GAAX,GAAiB,CAAjB,GAAqB,CAAC,CAAtC;;EAEA,UAAIqf,YAAY,KAAK,CAArB,EAAwB;EACtBxC,QAAAA,KAAK,GAAGzV,CAAC,CAACmY,IAAV;EACD,OAFD,MAEO;EACL,YAAI1C,KAAK,IAAI,CAACA,KAAD,KAAW,CAACzV,CAAC,CAACmY,IAA3B,EAAiC;EAC/B3M,UAAAA,OAAO,CAACrL,IAAR,CAAawV,QAAQ,CAACE,aAAT,CAAuBJ,KAAvB,EAA8BzV,CAAC,CAACmY,IAAhC,CAAb;EACD;;EAED1C,QAAAA,KAAK,GAAG,IAAR;EACD;EACF;;EAED,WAAOE,QAAQ,CAACgC,KAAT,CAAenM,OAAf,CAAP;EACD;EAED;;;;;;;WAKA6M,aAAA,sBAAyB;EAAA;;EAAA,uCAAXT,SAAW;EAAXA,MAAAA,SAAW;EAAA;;EACvB,WAAOjC,QAAQ,CAACqC,GAAT,CAAa,CAAC,IAAD,EAAOhV,MAAP,CAAc4U,SAAd,CAAb,EACJzU,GADI,CACA,UAAAnD,CAAC;EAAA,aAAI,MAAI,CAACyX,YAAL,CAAkBzX,CAAlB,CAAJ;EAAA,KADD,EAEJoD,MAFI,CAEG,UAAApD,CAAC;EAAA,aAAIA,CAAC,IAAI,CAACA,CAAC,CAAC0W,OAAF,EAAV;EAAA,KAFJ,CAAP;EAGD;EAED;;;;;;WAIAtjB,WAAA,oBAAW;EACT,QAAI,CAAC,KAAKuO,OAAV,EAAmB,OAAO4P,SAAP;EACnB,iBAAW,KAAK3gB,CAAL,CAAOqjB,KAAP,EAAX,gBAA+B,KAAKxgB,CAAL,CAAOwgB,KAAP,EAA/B;EACD;EAED;;;;;;;;WAMAA,QAAA,eAAMvU,IAAN,EAAY;EACV,QAAI,CAAC,KAAKiC,OAAV,EAAmB,OAAO4P,SAAP;EACnB,WAAU,KAAK3gB,CAAL,CAAOqjB,KAAP,CAAavU,IAAb,CAAV,SAAgC,KAAKjM,CAAL,CAAOwgB,KAAP,CAAavU,IAAb,CAAhC;EACD;EAED;;;;;;;;WAMA4Y,YAAA,qBAAY;EACV,QAAI,CAAC,KAAK3W,OAAV,EAAmB,OAAO4P,SAAP;EACnB,WAAU,KAAK3gB,CAAL,CAAO0nB,SAAP,EAAV,SAAgC,KAAK7kB,CAAL,CAAO6kB,SAAP,EAAhC;EACD;EAED;;;;;;;;;WAOAC,YAAA,mBAAU7Y,IAAV,EAAgB;EACd,QAAI,CAAC,KAAKiC,OAAV,EAAmB,OAAO4P,SAAP;EACnB,WAAU,KAAK3gB,CAAL,CAAO2nB,SAAP,CAAiB7Y,IAAjB,CAAV,SAAoC,KAAKjM,CAAL,CAAO8kB,SAAP,CAAiB7Y,IAAjB,CAApC;EACD;EAED;;;;;;;;;WAOAmU,WAAA,kBAAS2E,UAAT,UAAiD;EAAA,oCAAJ,EAAI;EAAA,gCAA1BC,SAA0B;EAAA,QAA1BA,SAA0B,gCAAd,KAAc;;EAC/C,QAAI,CAAC,KAAK9W,OAAV,EAAmB,OAAO4P,SAAP;EACnB,gBAAU,KAAK3gB,CAAL,CAAOijB,QAAP,CAAgB2E,UAAhB,CAAV,GAAwCC,SAAxC,GAAoD,KAAKhlB,CAAL,CAAOogB,QAAP,CAAgB2E,UAAhB,CAApD;EACD;EAED;;;;;;;;;;;;;;WAYAlC,aAAA,oBAAW9lB,IAAX,EAAiBkP,IAAjB,EAAuB;EACrB,QAAI,CAAC,KAAKiC,OAAV,EAAmB;EACjB,aAAOyQ,QAAQ,CAACkB,OAAT,CAAiB,KAAKoF,aAAtB,CAAP;EACD;;EACD,WAAO,KAAKjlB,CAAL,CAAO+iB,IAAP,CAAY,KAAK5lB,CAAjB,EAAoBJ,IAApB,EAA0BkP,IAA1B,CAAP;EACD;EAED;;;;;;;;;WAOAiZ,eAAA,sBAAaC,KAAb,EAAoB;EAClB,WAAOjD,QAAQ,CAACE,aAAT,CAAuB+C,KAAK,CAAC,KAAKhoB,CAAN,CAA5B,EAAsCgoB,KAAK,CAAC,KAAKnlB,CAAN,CAA3C,CAAP;EACD;;;;0BA/ZW;EACV,aAAO,KAAKkO,OAAL,GAAe,KAAK/Q,CAApB,GAAwB,IAA/B;EACD;EAED;;;;;;;0BAIU;EACR,aAAO,KAAK+Q,OAAL,GAAe,KAAKlO,CAApB,GAAwB,IAA/B;EACD;EAED;;;;;;;0BAIc;EACZ,aAAO,KAAKilB,aAAL,KAAuB,IAA9B;EACD;EAED;;;;;;;0BAIoB;EAClB,aAAO,KAAKpF,OAAL,GAAe,KAAKA,OAAL,CAAapjB,MAA5B,GAAqC,IAA5C;EACD;EAED;;;;;;;0BAIyB;EACvB,aAAO,KAAKojB,OAAL,GAAe,KAAKA,OAAL,CAAahQ,WAA5B,GAA0C,IAAjD;EACD;;;;;;ECrMH;;;;MAGqBuV;;;EACnB;;;;;SAKOC,SAAP,gBAAclX,IAAd,EAA2C;EAAA,QAA7BA,IAA6B;EAA7BA,MAAAA,IAA6B,GAAtBkF,QAAQ,CAACP,WAAa;EAAA;;EACzC,QAAMwS,KAAK,GAAGtQ,QAAQ,CAACqF,KAAT,GACXkL,OADW,CACHpX,IADG,EAEXgT,GAFW,CAEP;EAAE5jB,MAAAA,KAAK,EAAE;EAAT,KAFO,CAAd;EAIA,WAAO,CAAC4Q,IAAI,CAAC2H,SAAN,IAAmBwP,KAAK,CAACte,MAAN,KAAiBse,KAAK,CAACnE,GAAN,CAAU;EAAE5jB,MAAAA,KAAK,EAAE;EAAT,KAAV,EAAwByJ,MAAnE;EACD;EAED;;;;;;;SAKOwe,kBAAP,yBAAuBrX,IAAvB,EAA6B;EAC3B,WAAOqD,QAAQ,CAACG,gBAAT,CAA0BxD,IAA1B,KAAmCqD,QAAQ,CAACK,WAAT,CAAqB1D,IAArB,CAA1C;EACD;EAED;;;;;;;;;;;;;;;;SAcO0E,gBAAP,yBAAqB3Q,KAArB,EAA4B;EAC1B,WAAO2Q,aAAa,CAAC3Q,KAAD,EAAQmR,QAAQ,CAACP,WAAjB,CAApB;EACD;EAED;;;;;;;;;;;;;;;;;;SAgBO/K,SAAP,gBACElH,MADF,SAGE;EAAA,QAFAA,MAEA;EAFAA,MAAAA,MAEA,GAFS,MAET;EAAA;;EAAA,kCADwE,EACxE;EAAA,2BADE4D,MACF;EAAA,QADEA,MACF,4BADW,IACX;EAAA,oCADiBgP,eACjB;EAAA,QADiBA,eACjB,qCADmC,IACnC;EAAA,mCADyC3F,cACzC;EAAA,QADyCA,cACzC,oCAD0D,SAC1D;;EACA,WAAOyF,MAAM,CAACvH,MAAP,CAAcvH,MAAd,EAAsBgP,eAAtB,EAAuC3F,cAAvC,EAAuD/F,MAAvD,CAA8DlH,MAA9D,CAAP;EACD;EAED;;;;;;;;;;;;;;SAYO4kB,eAAP,sBACE5kB,MADF,UAGE;EAAA,QAFAA,MAEA;EAFAA,MAAAA,MAEA,GAFS,MAET;EAAA;;EAAA,oCADwE,EACxE;EAAA,6BADE4D,MACF;EAAA,QADEA,MACF,6BADW,IACX;EAAA,sCADiBgP,eACjB;EAAA,QADiBA,eACjB,sCADmC,IACnC;EAAA,qCADyC3F,cACzC;EAAA,QADyCA,cACzC,qCAD0D,SAC1D;;EACA,WAAOyF,MAAM,CAACvH,MAAP,CAAcvH,MAAd,EAAsBgP,eAAtB,EAAuC3F,cAAvC,EAAuD/F,MAAvD,CAA8DlH,MAA9D,EAAsE,IAAtE,CAAP;EACD;EAED;;;;;;;;;;;;;;;SAaOsH,WAAP,kBAAgBtH,MAAhB,UAAiF;EAAA,QAAjEA,MAAiE;EAAjEA,MAAAA,MAAiE,GAAxD,MAAwD;EAAA;;EAAA,oCAAJ,EAAI;EAAA,6BAA9C4D,MAA8C;EAAA,QAA9CA,MAA8C,6BAArC,IAAqC;EAAA,sCAA/BgP,eAA+B;EAAA,QAA/BA,eAA+B,sCAAb,IAAa;;EAC/E,WAAOF,MAAM,CAACvH,MAAP,CAAcvH,MAAd,EAAsBgP,eAAtB,EAAuC,IAAvC,EAA6CtL,QAA7C,CAAsDtH,MAAtD,CAAP;EACD;EAED;;;;;;;;;;;;;SAWO6kB,iBAAP,wBAAsB7kB,MAAtB,UAAuF;EAAA,QAAjEA,MAAiE;EAAjEA,MAAAA,MAAiE,GAAxD,MAAwD;EAAA;;EAAA,oCAAJ,EAAI;EAAA,6BAA9C4D,MAA8C;EAAA,QAA9CA,MAA8C,6BAArC,IAAqC;EAAA,sCAA/BgP,eAA+B;EAAA,QAA/BA,eAA+B,sCAAb,IAAa;;EACrF,WAAOF,MAAM,CAACvH,MAAP,CAAcvH,MAAd,EAAsBgP,eAAtB,EAAuC,IAAvC,EAA6CtL,QAA7C,CAAsDtH,MAAtD,EAA8D,IAA9D,CAAP;EACD;EAED;;;;;;;;;;SAQOuH,YAAP,2BAAyC;EAAA,oCAAJ,EAAI;EAAA,6BAAtB3D,MAAsB;EAAA,QAAtBA,MAAsB,6BAAb,IAAa;;EACvC,WAAO8O,MAAM,CAACvH,MAAP,CAAcvH,MAAd,EAAsB2D,SAAtB,EAAP;EACD;EAED;;;;;;;;;;;;SAUOI,OAAP,cAAY3H,MAAZ,UAAsD;EAAA,QAA1CA,MAA0C;EAA1CA,MAAAA,MAA0C,GAAjC,OAAiC;EAAA;;EAAA,oCAAJ,EAAI;EAAA,6BAAtB4D,MAAsB;EAAA,QAAtBA,MAAsB,6BAAb,IAAa;;EACpD,WAAO8O,MAAM,CAACvH,MAAP,CAAcvH,MAAd,EAAsB,IAAtB,EAA4B,SAA5B,EAAuC+D,IAAvC,CAA4C3H,MAA5C,CAAP;EACD;EAED;;;;;;;;;;;;;SAWO8kB,WAAP,oBAAkB;EAChB,QAAI5gB,IAAI,GAAG,KAAX;EAAA,QACE6gB,UAAU,GAAG,KADf;EAAA,QAEEC,KAAK,GAAG,KAFV;EAAA,QAGEC,QAAQ,GAAG,KAHb;;EAKA,QAAIjmB,OAAO,EAAX,EAAe;EACbkF,MAAAA,IAAI,GAAG,IAAP;EACA6gB,MAAAA,UAAU,GAAG3lB,gBAAgB,EAA7B;EACA6lB,MAAAA,QAAQ,GAAG3lB,WAAW,EAAtB;;EAEA,UAAI;EACF0lB,QAAAA,KAAK,GACH,IAAI/lB,IAAI,CAACC,cAAT,CAAwB,IAAxB,EAA8B;EAAE2E,UAAAA,QAAQ,EAAE;EAAZ,SAA9B,EAAgE0I,eAAhE,GACG1I,QADH,KACgB,kBAFlB;EAGD,OAJD,CAIE,OAAO1E,CAAP,EAAU;EACV6lB,QAAAA,KAAK,GAAG,KAAR;EACD;EACF;;EAED,WAAO;EAAE9gB,MAAAA,IAAI,EAAJA,IAAF;EAAQ6gB,MAAAA,UAAU,EAAVA,UAAR;EAAoBC,MAAAA,KAAK,EAALA,KAApB;EAA2BC,MAAAA,QAAQ,EAARA;EAA3B,KAAP;EACD;;;;;ECtLH,SAASC,OAAT,CAAiBC,OAAjB,EAA0BC,KAA1B,EAAiC;EAC/B,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAAAxd,EAAE;EAAA,WAClBA,EAAE,CACCyd,KADH,CACS,CADT,EACY;EAAEC,MAAAA,aAAa,EAAE;EAAjB,KADZ,EAEGtD,OAFH,CAEW,KAFX,EAGGpC,OAHH,EADkB;EAAA,GAAtB;EAAA,MAKE3L,EAAE,GAAGmR,WAAW,CAACD,KAAD,CAAX,GAAqBC,WAAW,CAACF,OAAD,CALvC;;EAMA,SAAOjkB,IAAI,CAACC,KAAL,CAAW2c,QAAQ,CAAC5I,UAAT,CAAoBhB,EAApB,EAAwB4L,EAAxB,CAA2B,MAA3B,CAAX,CAAP;EACD;;EAED,SAAS0F,cAAT,CAAwBzN,MAAxB,EAAgCqN,KAAhC,EAAuC/c,KAAvC,EAA8C;EAC5C,MAAMod,OAAO,GAAG,CACd,CAAC,OAAD,EAAU,UAAChlB,CAAD,EAAI8iB,CAAJ;EAAA,WAAUA,CAAC,CAAC9mB,IAAF,GAASgE,CAAC,CAAChE,IAArB;EAAA,GAAV,CADc,EAEd,CAAC,QAAD,EAAW,UAACgE,CAAD,EAAI8iB,CAAJ;EAAA,WAAUA,CAAC,CAAC7mB,KAAF,GAAU+D,CAAC,CAAC/D,KAAZ,GAAoB,CAAC6mB,CAAC,CAAC9mB,IAAF,GAASgE,CAAC,CAAChE,IAAZ,IAAoB,EAAlD;EAAA,GAAX,CAFc,EAGd,CACE,OADF,EAEE,UAACgE,CAAD,EAAI8iB,CAAJ,EAAU;EACR,QAAM9a,IAAI,GAAGyc,OAAO,CAACzkB,CAAD,EAAI8iB,CAAJ,CAApB;EACA,WAAO,CAAC9a,IAAI,GAAIA,IAAI,GAAG,CAAhB,IAAsB,CAA7B;EACD,GALH,CAHc,EAUd,CAAC,MAAD,EAASyc,OAAT,CAVc,CAAhB;EAaA,MAAMhO,OAAO,GAAG,EAAhB;EACA,MAAIwO,WAAJ,EAAiBC,SAAjB;;EAEA,8BAA6BF,OAA7B,8BAAsC;EAAA;EAAA,QAA1BvpB,IAA0B;EAAA,QAApB0pB,MAAoB;;EACpC,QAAIvd,KAAK,CAACrC,OAAN,CAAc9J,IAAd,KAAuB,CAA3B,EAA8B;EAAA;;EAC5BwpB,MAAAA,WAAW,GAAGxpB,IAAd;EAEA,UAAI2pB,KAAK,GAAGD,MAAM,CAAC7N,MAAD,EAASqN,KAAT,CAAlB;EACAO,MAAAA,SAAS,GAAG5N,MAAM,CAACgI,IAAP,kCAAe7jB,IAAf,IAAsB2pB,KAAtB,gBAAZ;;EAEA,UAAIF,SAAS,GAAGP,KAAhB,EAAuB;EAAA;;EACrBrN,QAAAA,MAAM,GAAGA,MAAM,CAACgI,IAAP,oCAAe7jB,IAAf,IAAsB2pB,KAAK,GAAG,CAA9B,iBAAT;EACAA,QAAAA,KAAK,IAAI,CAAT;EACD,OAHD,MAGO;EACL9N,QAAAA,MAAM,GAAG4N,SAAT;EACD;;EAEDzO,MAAAA,OAAO,CAAChb,IAAD,CAAP,GAAgB2pB,KAAhB;EACD;EACF;;EAED,SAAO,CAAC9N,MAAD,EAASb,OAAT,EAAkByO,SAAlB,EAA6BD,WAA7B,CAAP;EACD;;EAEc,gBAASP,OAAT,EAAkBC,KAAlB,EAAyB/c,KAAzB,EAAgC+C,IAAhC,EAAsC;EAAA,wBACHoa,cAAc,CAACL,OAAD,EAAUC,KAAV,EAAiB/c,KAAjB,CADX;EAAA,MAC9C0P,MAD8C;EAAA,MACtCb,OADsC;EAAA,MAC7ByO,SAD6B;EAAA,MAClBD,WADkB;;EAGnD,MAAMI,eAAe,GAAGV,KAAK,GAAGrN,MAAhC;EAEA,MAAMgO,eAAe,GAAG1d,KAAK,CAACyG,MAAN,CACtB,UAAA/I,CAAC;EAAA,WAAI,CAAC,OAAD,EAAU,SAAV,EAAqB,SAArB,EAAgC,cAAhC,EAAgDC,OAAhD,CAAwDD,CAAxD,KAA8D,CAAlE;EAAA,GADqB,CAAxB;;EAIA,MAAIggB,eAAe,CAAC/lB,MAAhB,KAA2B,CAA/B,EAAkC;EAChC,QAAI2lB,SAAS,GAAGP,KAAhB,EAAuB;EAAA;;EACrBO,MAAAA,SAAS,GAAG5N,MAAM,CAACgI,IAAP,oCAAe2F,WAAf,IAA6B,CAA7B,iBAAZ;EACD;;EAED,QAAIC,SAAS,KAAK5N,MAAlB,EAA0B;EACxBb,MAAAA,OAAO,CAACwO,WAAD,CAAP,GAAuB,CAACxO,OAAO,CAACwO,WAAD,CAAP,IAAwB,CAAzB,IAA8BI,eAAe,IAAIH,SAAS,GAAG5N,MAAhB,CAApE;EACD;EACF;;EAED,MAAMiI,QAAQ,GAAGlC,QAAQ,CAAC/H,UAAT,CAAoBnX,MAAM,CAACqF,MAAP,CAAciT,OAAd,EAAuB9L,IAAvB,CAApB,CAAjB;;EAEA,MAAI2a,eAAe,CAAC/lB,MAAhB,GAAyB,CAA7B,EAAgC;EAAA;;EAC9B,WAAO,wBAAA8d,QAAQ,CAAC5I,UAAT,CAAoB4Q,eAApB,EAAqC1a,IAArC,GACJwD,OADI,6BACOmX,eADP,EAEJhG,IAFI,CAECC,QAFD,CAAP;EAGD,GAJD,MAIO;EACL,WAAOA,QAAP;EACD;EACF;;EC9ED,IAAMgG,gBAAgB,GAAG;EACvBC,EAAAA,IAAI,EAAE,iBADiB;EAEvBC,EAAAA,OAAO,EAAE,iBAFc;EAGvBC,EAAAA,IAAI,EAAE,iBAHiB;EAIvBC,EAAAA,IAAI,EAAE,iBAJiB;EAKvBC,EAAAA,IAAI,EAAE,iBALiB;EAMvBC,EAAAA,QAAQ,EAAE,iBANa;EAOvBC,EAAAA,IAAI,EAAE,iBAPiB;EAQvBC,EAAAA,OAAO,EAAE,uBARc;EASvBC,EAAAA,IAAI,EAAE,iBATiB;EAUvBC,EAAAA,IAAI,EAAE,iBAViB;EAWvBC,EAAAA,IAAI,EAAE,iBAXiB;EAYvBC,EAAAA,IAAI,EAAE,iBAZiB;EAavBC,EAAAA,IAAI,EAAE,iBAbiB;EAcvBC,EAAAA,IAAI,EAAE,iBAdiB;EAevBC,EAAAA,IAAI,EAAE,iBAfiB;EAgBvBC,EAAAA,IAAI,EAAE,iBAhBiB;EAiBvBC,EAAAA,OAAO,EAAE,iBAjBc;EAkBvBC,EAAAA,IAAI,EAAE,iBAlBiB;EAmBvBC,EAAAA,IAAI,EAAE,iBAnBiB;EAoBvBC,EAAAA,IAAI,EAAE,iBApBiB;EAqBvBC,EAAAA,IAAI,EAAE;EArBiB,CAAzB;EAwBA,IAAMC,qBAAqB,GAAG;EAC5BrB,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CADsB;EAE5BC,EAAAA,OAAO,EAAE,CAAC,IAAD,EAAO,IAAP,CAFmB;EAG5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAHsB;EAI5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAJsB;EAK5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CALsB;EAM5BC,EAAAA,QAAQ,EAAE,CAAC,KAAD,EAAQ,KAAR,CANkB;EAO5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAPsB;EAQ5BE,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CARsB;EAS5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CATsB;EAU5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAVsB;EAW5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAXsB;EAY5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAZsB;EAa5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAbsB;EAc5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAdsB;EAe5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAfsB;EAgB5BC,EAAAA,OAAO,EAAE,CAAC,IAAD,EAAO,IAAP,CAhBmB;EAiB5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAjBsB;EAkB5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP,CAlBsB;EAmB5BC,EAAAA,IAAI,EAAE,CAAC,IAAD,EAAO,IAAP;EAnBsB,CAA9B;;EAuBA,IAAMG,YAAY,GAAGvB,gBAAgB,CAACQ,OAAjB,CAAyBzhB,OAAzB,CAAiC,UAAjC,EAA6C,EAA7C,EAAiD+c,KAAjD,CAAuD,EAAvD,CAArB;EAEO,SAAS0F,WAAT,CAAqBC,GAArB,EAA0B;EAC/B,MAAIjjB,KAAK,GAAG9C,QAAQ,CAAC+lB,GAAD,EAAM,EAAN,CAApB;;EACA,MAAIpiB,KAAK,CAACb,KAAD,CAAT,EAAkB;EAChBA,IAAAA,KAAK,GAAG,EAAR;;EACA,SAAK,IAAIkH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+b,GAAG,CAACznB,MAAxB,EAAgC0L,CAAC,EAAjC,EAAqC;EACnC,UAAMgc,IAAI,GAAGD,GAAG,CAACE,UAAJ,CAAejc,CAAf,CAAb;;EAEA,UAAI+b,GAAG,CAAC/b,CAAD,CAAH,CAAOkc,MAAP,CAAc5B,gBAAgB,CAACQ,OAA/B,MAA4C,CAAC,CAAjD,EAAoD;EAClDhiB,QAAAA,KAAK,IAAI+iB,YAAY,CAACvhB,OAAb,CAAqByhB,GAAG,CAAC/b,CAAD,CAAxB,CAAT;EACD,OAFD,MAEO;EACL,aAAK,IAAMrC,GAAX,IAAkBie,qBAAlB,EAAyC;EAAA,qCACpBA,qBAAqB,CAACje,GAAD,CADD;EAAA,cAChCwe,GADgC;EAAA,cAC3BC,GAD2B;;EAEvC,cAAIJ,IAAI,IAAIG,GAAR,IAAeH,IAAI,IAAII,GAA3B,EAAgC;EAC9BtjB,YAAAA,KAAK,IAAIkjB,IAAI,GAAGG,GAAhB;EACD;EACF;EACF;EACF;;EACD,WAAOnmB,QAAQ,CAAC8C,KAAD,EAAQ,EAAR,CAAf;EACD,GAjBD,MAiBO;EACL,WAAOA,KAAP;EACD;EACF;EAEM,SAASujB,UAAT,OAAyCC,MAAzC,EAAsD;EAAA,MAAhCpV,eAAgC,QAAhCA,eAAgC;;EAAA,MAAboV,MAAa;EAAbA,IAAAA,MAAa,GAAJ,EAAI;EAAA;;EAC3D,SAAO,IAAIxY,MAAJ,MAAcwW,gBAAgB,CAACpT,eAAe,IAAI,MAApB,CAA9B,GAA4DoV,MAA5D,CAAP;EACD;;ECnED,IAAMC,WAAW,GAAG,mDAApB;;EAEA,SAASC,OAAT,CAAiBhQ,KAAjB,EAAwBiQ,IAAxB,EAAuC;EAAA,MAAfA,IAAe;EAAfA,IAAAA,IAAe,GAAR,cAAAzc,CAAC;EAAA,aAAIA,CAAJ;EAAA,KAAO;EAAA;;EACrC,SAAO;EAAEwM,IAAAA,KAAK,EAALA,KAAF;EAASkQ,IAAAA,KAAK,EAAE;EAAA,UAAE9rB,CAAF;EAAA,aAAS6rB,IAAI,CAACX,WAAW,CAAClrB,CAAD,CAAZ,CAAb;EAAA;EAAhB,GAAP;EACD;;EAED,SAAS+rB,YAAT,CAAsB/rB,CAAtB,EAAyB;EACvB;EACA,SAAOA,CAAC,CAACyI,OAAF,CAAU,IAAV,EAAgB,MAAhB,CAAP;EACD;;EAED,SAASujB,oBAAT,CAA8BhsB,CAA9B,EAAiC;EAC/B,SAAOA,CAAC,CAACyI,OAAF,CAAU,IAAV,EAAgB,EAAhB,EAAoBR,WAApB,EAAP;EACD;;EAED,SAASgkB,KAAT,CAAeC,OAAf,EAAwBC,UAAxB,EAAoC;EAClC,MAAID,OAAO,KAAK,IAAhB,EAAsB;EACpB,WAAO,IAAP;EACD,GAFD,MAEO;EACL,WAAO;EACLtQ,MAAAA,KAAK,EAAE1I,MAAM,CAACgZ,OAAO,CAAC3Z,GAAR,CAAYwZ,YAAZ,EAA0BK,IAA1B,CAA+B,GAA/B,CAAD,CADR;EAELN,MAAAA,KAAK,EAAE;EAAA,YAAE9rB,CAAF;EAAA,eACLksB,OAAO,CAACG,SAAR,CAAkB,UAAAjd,CAAC;EAAA,iBAAI4c,oBAAoB,CAAChsB,CAAD,CAApB,KAA4BgsB,oBAAoB,CAAC5c,CAAD,CAApD;EAAA,SAAnB,IAA8E+c,UADzE;EAAA;EAFF,KAAP;EAKD;EACF;;EAED,SAAStiB,MAAT,CAAgB+R,KAAhB,EAAuB0Q,MAAvB,EAA+B;EAC7B,SAAO;EAAE1Q,IAAAA,KAAK,EAALA,KAAF;EAASkQ,IAAAA,KAAK,EAAE;EAAA,UAAIS,CAAJ;EAAA,UAAOxkB,CAAP;EAAA,aAAcW,YAAY,CAAC6jB,CAAD,EAAIxkB,CAAJ,CAA1B;EAAA,KAAhB;EAAkDukB,IAAAA,MAAM,EAANA;EAAlD,GAAP;EACD;;EAED,SAASE,MAAT,CAAgB5Q,KAAhB,EAAuB;EACrB,SAAO;EAAEA,IAAAA,KAAK,EAALA,KAAF;EAASkQ,IAAAA,KAAK,EAAE;EAAA,UAAE9rB,CAAF;EAAA,aAASA,CAAT;EAAA;EAAhB,GAAP;EACD;;EAED,SAASysB,WAAT,CAAqBvkB,KAArB,EAA4B;EAC1B;EACA,SAAOA,KAAK,CAACO,OAAN,CAAc,6BAAd,EAA6C,MAA7C,CAAP;EACD;;EAED,SAASikB,YAAT,CAAsBrf,KAAtB,EAA6BoC,GAA7B,EAAkC;EAChC,MAAMkd,GAAG,GAAGlB,UAAU,CAAChc,GAAD,CAAtB;EAAA,MACEmd,GAAG,GAAGnB,UAAU,CAAChc,GAAD,EAAM,KAAN,CADlB;EAAA,MAEEod,KAAK,GAAGpB,UAAU,CAAChc,GAAD,EAAM,KAAN,CAFpB;EAAA,MAGEqd,IAAI,GAAGrB,UAAU,CAAChc,GAAD,EAAM,KAAN,CAHnB;EAAA,MAIEsd,GAAG,GAAGtB,UAAU,CAAChc,GAAD,EAAM,KAAN,CAJlB;EAAA,MAKEud,QAAQ,GAAGvB,UAAU,CAAChc,GAAD,EAAM,OAAN,CALvB;EAAA,MAMEwd,UAAU,GAAGxB,UAAU,CAAChc,GAAD,EAAM,OAAN,CANzB;EAAA,MAOEyd,QAAQ,GAAGzB,UAAU,CAAChc,GAAD,EAAM,OAAN,CAPvB;EAAA,MAQE0d,SAAS,GAAG1B,UAAU,CAAChc,GAAD,EAAM,OAAN,CARxB;EAAA,MASE2d,SAAS,GAAG3B,UAAU,CAAChc,GAAD,EAAM,OAAN,CATxB;EAAA,MAUE4d,SAAS,GAAG5B,UAAU,CAAChc,GAAD,EAAM,OAAN,CAVxB;EAAA,MAWEnC,OAAO,GAAG,SAAVA,OAAU,CAAAO,CAAC;EAAA,WAAK;EAAE+N,MAAAA,KAAK,EAAE1I,MAAM,CAACuZ,WAAW,CAAC5e,CAAC,CAACN,GAAH,CAAZ,CAAf;EAAqCue,MAAAA,KAAK,EAAE;EAAA,YAAE9rB,CAAF;EAAA,eAASA,CAAT;EAAA,OAA5C;EAAwDsN,MAAAA,OAAO,EAAE;EAAjE,KAAL;EAAA,GAXb;EAAA,MAYEggB,OAAO,GAAG,SAAVA,OAAU,CAAAzf,CAAC,EAAI;EACb,QAAIR,KAAK,CAACC,OAAV,EAAmB;EACjB,aAAOA,OAAO,CAACO,CAAD,CAAd;EACD;;EACD,YAAQA,CAAC,CAACN,GAAV;EACE;EACA,WAAK,GAAL;EACE,eAAO0e,KAAK,CAACxc,GAAG,CAACpE,IAAJ,CAAS,OAAT,EAAkB,KAAlB,CAAD,EAA2B,CAA3B,CAAZ;;EACF,WAAK,IAAL;EACE,eAAO4gB,KAAK,CAACxc,GAAG,CAACpE,IAAJ,CAAS,MAAT,EAAiB,KAAjB,CAAD,EAA0B,CAA1B,CAAZ;EACF;;EACA,WAAK,GAAL;EACE,eAAOugB,OAAO,CAACsB,QAAD,CAAd;;EACF,WAAK,IAAL;EACE,eAAOtB,OAAO,CAACwB,SAAD,EAAYlmB,cAAZ,CAAd;;EACF,WAAK,MAAL;EACE,eAAO0kB,OAAO,CAACkB,IAAD,CAAd;;EACF,WAAK,OAAL;EACE,eAAOlB,OAAO,CAACyB,SAAD,CAAd;;EACF,WAAK,QAAL;EACE,eAAOzB,OAAO,CAACmB,GAAD,CAAd;EACF;;EACA,WAAK,GAAL;EACE,eAAOnB,OAAO,CAACoB,QAAD,CAAd;;EACF,WAAK,IAAL;EACE,eAAOpB,OAAO,CAACgB,GAAD,CAAd;;EACF,WAAK,KAAL;EACE,eAAOX,KAAK,CAACxc,GAAG,CAAC7E,MAAJ,CAAW,OAAX,EAAoB,IAApB,EAA0B,KAA1B,CAAD,EAAmC,CAAnC,CAAZ;;EACF,WAAK,MAAL;EACE,eAAOqhB,KAAK,CAACxc,GAAG,CAAC7E,MAAJ,CAAW,MAAX,EAAmB,IAAnB,EAAyB,KAAzB,CAAD,EAAkC,CAAlC,CAAZ;;EACF,WAAK,GAAL;EACE,eAAOghB,OAAO,CAACoB,QAAD,CAAd;;EACF,WAAK,IAAL;EACE,eAAOpB,OAAO,CAACgB,GAAD,CAAd;;EACF,WAAK,KAAL;EACE,eAAOX,KAAK,CAACxc,GAAG,CAAC7E,MAAJ,CAAW,OAAX,EAAoB,KAApB,EAA2B,KAA3B,CAAD,EAAoC,CAApC,CAAZ;;EACF,WAAK,MAAL;EACE,eAAOqhB,KAAK,CAACxc,GAAG,CAAC7E,MAAJ,CAAW,MAAX,EAAmB,KAAnB,EAA0B,KAA1B,CAAD,EAAmC,CAAnC,CAAZ;EACF;;EACA,WAAK,GAAL;EACE,eAAOghB,OAAO,CAACoB,QAAD,CAAd;;EACF,WAAK,IAAL;EACE,eAAOpB,OAAO,CAACgB,GAAD,CAAd;EACF;;EACA,WAAK,GAAL;EACE,eAAOhB,OAAO,CAACqB,UAAD,CAAd;;EACF,WAAK,KAAL;EACE,eAAOrB,OAAO,CAACiB,KAAD,CAAd;EACF;;EACA,WAAK,IAAL;EACE,eAAOjB,OAAO,CAACgB,GAAD,CAAd;;EACF,WAAK,GAAL;EACE,eAAOhB,OAAO,CAACoB,QAAD,CAAd;;EACF,WAAK,IAAL;EACE,eAAOpB,OAAO,CAACgB,GAAD,CAAd;;EACF,WAAK,GAAL;EACE,eAAOhB,OAAO,CAACoB,QAAD,CAAd;;EACF,WAAK,IAAL;EACE,eAAOpB,OAAO,CAACgB,GAAD,CAAd;;EACF,WAAK,GAAL;EACE,eAAOhB,OAAO,CAACoB,QAAD,CAAd;;EACF,WAAK,GAAL;EACE,eAAOpB,OAAO,CAACoB,QAAD,CAAd;;EACF,WAAK,IAAL;EACE,eAAOpB,OAAO,CAACgB,GAAD,CAAd;;EACF,WAAK,GAAL;EACE,eAAOhB,OAAO,CAACoB,QAAD,CAAd;;EACF,WAAK,IAAL;EACE,eAAOpB,OAAO,CAACgB,GAAD,CAAd;;EACF,WAAK,GAAL;EACE,eAAOhB,OAAO,CAACqB,UAAD,CAAd;;EACF,WAAK,KAAL;EACE,eAAOrB,OAAO,CAACiB,KAAD,CAAd;;EACF,WAAK,GAAL;EACE,eAAOL,MAAM,CAACW,SAAD,CAAb;EACF;;EACA,WAAK,GAAL;EACE,eAAOlB,KAAK,CAACxc,GAAG,CAACxE,SAAJ,EAAD,EAAkB,CAAlB,CAAZ;EACF;;EACA,WAAK,MAAL;EACE,eAAO2gB,OAAO,CAACkB,IAAD,CAAd;;EACF,WAAK,IAAL;EACE,eAAOlB,OAAO,CAACwB,SAAD,EAAYlmB,cAAZ,CAAd;EACF;;EACA,WAAK,GAAL;EACE,eAAO0kB,OAAO,CAACoB,QAAD,CAAd;;EACF,WAAK,IAAL;EACE,eAAOpB,OAAO,CAACgB,GAAD,CAAd;EACF;;EACA,WAAK,GAAL;EACA,WAAK,GAAL;EACE,eAAOhB,OAAO,CAACe,GAAD,CAAd;;EACF,WAAK,KAAL;EACE,eAAOV,KAAK,CAACxc,GAAG,CAACzE,QAAJ,CAAa,OAAb,EAAsB,KAAtB,EAA6B,KAA7B,CAAD,EAAsC,CAAtC,CAAZ;;EACF,WAAK,MAAL;EACE,eAAOihB,KAAK,CAACxc,GAAG,CAACzE,QAAJ,CAAa,MAAb,EAAqB,KAArB,EAA4B,KAA5B,CAAD,EAAqC,CAArC,CAAZ;;EACF,WAAK,KAAL;EACE,eAAOihB,KAAK,CAACxc,GAAG,CAACzE,QAAJ,CAAa,OAAb,EAAsB,IAAtB,EAA4B,KAA5B,CAAD,EAAqC,CAArC,CAAZ;;EACF,WAAK,MAAL;EACE,eAAOihB,KAAK,CAACxc,GAAG,CAACzE,QAAJ,CAAa,MAAb,EAAqB,IAArB,EAA2B,KAA3B,CAAD,EAAoC,CAApC,CAAZ;EACF;;EACA,WAAK,GAAL;EACA,WAAK,IAAL;EACE,eAAOnB,MAAM,CAAC,IAAIqJ,MAAJ,WAAmB8Z,QAAQ,CAAC7Z,MAA5B,cAA2CyZ,GAAG,CAACzZ,MAA/C,SAAD,EAA8D,CAA9D,CAAb;;EACF,WAAK,KAAL;EACE,eAAOtJ,MAAM,CAAC,IAAIqJ,MAAJ,WAAmB8Z,QAAQ,CAAC7Z,MAA5B,UAAuCyZ,GAAG,CAACzZ,MAA3C,QAAD,EAAyD,CAAzD,CAAb;EACF;EACA;;EACA,WAAK,GAAL;EACE,eAAOqZ,MAAM,CAAC,oBAAD,CAAb;;EACF;EACE,eAAOlf,OAAO,CAACO,CAAD,CAAd;EA3GJ;EA6GD,GA7HH;;EA+HA,MAAMjO,IAAI,GAAG0tB,OAAO,CAACjgB,KAAD,CAAP,IAAkB;EAC7Bya,IAAAA,aAAa,EAAE6D;EADc,GAA/B;EAIA/rB,EAAAA,IAAI,CAACyN,KAAL,GAAaA,KAAb;EAEA,SAAOzN,IAAP;EACD;;EAED,IAAM2tB,uBAAuB,GAAG;EAC9BptB,EAAAA,IAAI,EAAE;EACJ,eAAW,IADP;EAEJ0L,IAAAA,OAAO,EAAE;EAFL,GADwB;EAK9BzL,EAAAA,KAAK,EAAE;EACLyL,IAAAA,OAAO,EAAE,GADJ;EAEL,eAAW,IAFN;EAGL2hB,IAAAA,KAAK,EAAE,KAHF;EAILC,IAAAA,IAAI,EAAE;EAJD,GALuB;EAW9BptB,EAAAA,GAAG,EAAE;EACHwL,IAAAA,OAAO,EAAE,GADN;EAEH,eAAW;EAFR,GAXyB;EAe9BpL,EAAAA,OAAO,EAAE;EACP+sB,IAAAA,KAAK,EAAE,KADA;EAEPC,IAAAA,IAAI,EAAE;EAFC,GAfqB;EAmB9BC,EAAAA,SAAS,EAAE,GAnBmB;EAoB9BC,EAAAA,SAAS,EAAE,GApBmB;EAqB9BhtB,EAAAA,IAAI,EAAE;EACJkL,IAAAA,OAAO,EAAE,GADL;EAEJ,eAAW;EAFP,GArBwB;EAyB9BjL,EAAAA,MAAM,EAAE;EACNiL,IAAAA,OAAO,EAAE,GADH;EAEN,eAAW;EAFL,GAzBsB;EA6B9B/K,EAAAA,MAAM,EAAE;EACN+K,IAAAA,OAAO,EAAE,GADH;EAEN,eAAW;EAFL;EA7BsB,CAAhC;;EAmCA,SAAS+hB,YAAT,CAAsBC,IAAtB,EAA4BvmB,MAA5B,EAAoCkI,UAApC,EAAgD;EAAA,MACtCxH,IADsC,GACtB6lB,IADsB,CACtC7lB,IADsC;EAAA,MAChCE,KADgC,GACtB2lB,IADsB,CAChC3lB,KADgC;;EAG9C,MAAIF,IAAI,KAAK,SAAb,EAAwB;EACtB,WAAO;EACLsF,MAAAA,OAAO,EAAE,IADJ;EAELC,MAAAA,GAAG,EAAErF;EAFA,KAAP;EAID;;EAED,MAAM+Q,KAAK,GAAGzJ,UAAU,CAACxH,IAAD,CAAxB;EAEA,MAAIuF,GAAG,GAAGggB,uBAAuB,CAACvlB,IAAD,CAAjC;;EACA,MAAI,OAAOuF,GAAP,KAAe,QAAnB,EAA6B;EAC3BA,IAAAA,GAAG,GAAGA,GAAG,CAAC0L,KAAD,CAAT;EACD;;EAED,MAAI1L,GAAJ,EAAS;EACP,WAAO;EACLD,MAAAA,OAAO,EAAE,KADJ;EAELC,MAAAA,GAAG,EAAHA;EAFK,KAAP;EAID;;EAED,SAAO5J,SAAP;EACD;;EAED,SAASmqB,UAAT,CAAoB/hB,KAApB,EAA2B;EACzB,MAAMgiB,EAAE,GAAGhiB,KAAK,CAACwG,GAAN,CAAU,UAAA9I,CAAC;EAAA,WAAIA,CAAC,CAACmS,KAAN;EAAA,GAAX,EAAwBhY,MAAxB,CAA+B,UAAC2B,CAAD,EAAI+P,CAAJ;EAAA,WAAa/P,CAAb,SAAkB+P,CAAC,CAACnC,MAApB;EAAA,GAA/B,EAA8D,EAA9D,CAAX;EACA,SAAO,OAAK4a,EAAL,QAAYhiB,KAAZ,CAAP;EACD;;EAED,SAAS0I,KAAT,CAAe1P,KAAf,EAAsB6W,KAAtB,EAA6BoS,QAA7B,EAAuC;EACrC,MAAMC,OAAO,GAAGlpB,KAAK,CAAC0P,KAAN,CAAYmH,KAAZ,CAAhB;;EAEA,MAAIqS,OAAJ,EAAa;EACX,QAAMC,GAAG,GAAG,EAAZ;EACA,QAAIC,UAAU,GAAG,CAAjB;;EACA,SAAK,IAAM/e,CAAX,IAAgB4e,QAAhB,EAA0B;EACxB,UAAI3pB,cAAc,CAAC2pB,QAAD,EAAW5e,CAAX,CAAlB,EAAiC;EAC/B,YAAMmd,CAAC,GAAGyB,QAAQ,CAAC5e,CAAD,CAAlB;EAAA,YACEkd,MAAM,GAAGC,CAAC,CAACD,MAAF,GAAWC,CAAC,CAACD,MAAF,GAAW,CAAtB,GAA0B,CADrC;;EAEA,YAAI,CAACC,CAAC,CAACjf,OAAH,IAAcif,CAAC,CAAClf,KAApB,EAA2B;EACzB6gB,UAAAA,GAAG,CAAC3B,CAAC,CAAClf,KAAF,CAAQE,GAAR,CAAY,CAAZ,CAAD,CAAH,GAAsBgf,CAAC,CAACT,KAAF,CAAQmC,OAAO,CAAChpB,KAAR,CAAckpB,UAAd,EAA0BA,UAAU,GAAG7B,MAAvC,CAAR,CAAtB;EACD;;EACD6B,QAAAA,UAAU,IAAI7B,MAAd;EACD;EACF;;EACD,WAAO,CAAC2B,OAAD,EAAUC,GAAV,CAAP;EACD,GAdD,MAcO;EACL,WAAO,CAACD,OAAD,EAAU,EAAV,CAAP;EACD;EACF;;EAED,SAASG,mBAAT,CAA6BH,OAA7B,EAAsC;EACpC,MAAMI,OAAO,GAAG,SAAVA,OAAU,CAAAhhB,KAAK,EAAI;EACvB,YAAQA,KAAR;EACE,WAAK,GAAL;EACE,eAAO,aAAP;;EACF,WAAK,GAAL;EACE,eAAO,QAAP;;EACF,WAAK,GAAL;EACE,eAAO,QAAP;;EACF,WAAK,GAAL;EACA,WAAK,GAAL;EACE,eAAO,MAAP;;EACF,WAAK,GAAL;EACE,eAAO,KAAP;;EACF,WAAK,GAAL;EACE,eAAO,SAAP;;EACF,WAAK,GAAL;EACA,WAAK,GAAL;EACE,eAAO,OAAP;;EACF,WAAK,GAAL;EACE,eAAO,MAAP;;EACF,WAAK,GAAL;EACA,WAAK,GAAL;EACE,eAAO,SAAP;;EACF,WAAK,GAAL;EACE,eAAO,YAAP;;EACF,WAAK,GAAL;EACE,eAAO,UAAP;;EACF,WAAK,GAAL;EACE,eAAO,SAAP;;EACF;EACE,eAAO,IAAP;EA7BJ;EA+BD,GAhCD;;EAkCA,MAAI2D,IAAJ;;EACA,MAAI,CAAChP,WAAW,CAACisB,OAAO,CAACK,CAAT,CAAhB,EAA6B;EAC3Btd,IAAAA,IAAI,GAAG,IAAIkE,eAAJ,CAAoB+Y,OAAO,CAACK,CAA5B,CAAP;EACD,GAFD,MAEO,IAAI,CAACtsB,WAAW,CAACisB,OAAO,CAAC5X,CAAT,CAAhB,EAA6B;EAClCrF,IAAAA,IAAI,GAAGqD,QAAQ,CAACxF,MAAT,CAAgBof,OAAO,CAAC5X,CAAxB,CAAP;EACD,GAFM,MAEA;EACLrF,IAAAA,IAAI,GAAG,IAAP;EACD;;EAED,MAAI,CAAChP,WAAW,CAACisB,OAAO,CAACM,CAAT,CAAhB,EAA6B;EAC3BN,IAAAA,OAAO,CAACO,CAAR,GAAY,CAACP,OAAO,CAACM,CAAR,GAAY,CAAb,IAAkB,CAAlB,GAAsB,CAAlC;EACD;;EAED,MAAI,CAACvsB,WAAW,CAACisB,OAAO,CAAC1B,CAAT,CAAhB,EAA6B;EAC3B,QAAI0B,OAAO,CAAC1B,CAAR,GAAY,EAAZ,IAAkB0B,OAAO,CAAC9pB,CAAR,KAAc,CAApC,EAAuC;EACrC8pB,MAAAA,OAAO,CAAC1B,CAAR,IAAa,EAAb;EACD,KAFD,MAEO,IAAI0B,OAAO,CAAC1B,CAAR,KAAc,EAAd,IAAoB0B,OAAO,CAAC9pB,CAAR,KAAc,CAAtC,EAAyC;EAC9C8pB,MAAAA,OAAO,CAAC1B,CAAR,GAAY,CAAZ;EACD;EACF;;EAED,MAAI0B,OAAO,CAACQ,CAAR,KAAc,CAAd,IAAmBR,OAAO,CAACS,CAA/B,EAAkC;EAChCT,IAAAA,OAAO,CAACS,CAAR,GAAY,CAACT,OAAO,CAACS,CAArB;EACD;;EAED,MAAI,CAAC1sB,WAAW,CAACisB,OAAO,CAACxkB,CAAT,CAAhB,EAA6B;EAC3BwkB,IAAAA,OAAO,CAACU,CAAR,GAAYtpB,WAAW,CAAC4oB,OAAO,CAACxkB,CAAT,CAAvB;EACD;;EAED,MAAM6Y,IAAI,GAAGhgB,MAAM,CAAC4B,IAAP,CAAY+pB,OAAZ,EAAqBrqB,MAArB,CAA4B,UAAC0R,CAAD,EAAIlR,CAAJ,EAAU;EACjD,QAAMmB,CAAC,GAAG8oB,OAAO,CAACjqB,CAAD,CAAjB;;EACA,QAAImB,CAAJ,EAAO;EACL+P,MAAAA,CAAC,CAAC/P,CAAD,CAAD,GAAO0oB,OAAO,CAAC7pB,CAAD,CAAd;EACD;;EAED,WAAOkR,CAAP;EACD,GAPY,EAOV,EAPU,CAAb;EASA,SAAO,CAACgN,IAAD,EAAOtR,IAAP,CAAP;EACD;;EAED,IAAI4d,kBAAkB,GAAG,IAAzB;;EAEA,SAASC,gBAAT,GAA4B;EAC1B,MAAI,CAACD,kBAAL,EAAyB;EACvBA,IAAAA,kBAAkB,GAAG/W,QAAQ,CAACe,UAAT,CAAoB,aAApB,CAArB;EACD;;EAED,SAAOgW,kBAAP;EACD;;EAED,SAASE,qBAAT,CAA+BzhB,KAA/B,EAAsC/F,MAAtC,EAA8C;EAC5C,MAAI+F,KAAK,CAACC,OAAV,EAAmB;EACjB,WAAOD,KAAP;EACD;;EAED,MAAMmC,UAAU,GAAGZ,SAAS,CAACpB,sBAAV,CAAiCH,KAAK,CAACE,GAAvC,CAAnB;;EAEA,MAAI,CAACiC,UAAL,EAAiB;EACf,WAAOnC,KAAP;EACD;;EAED,MAAM0hB,SAAS,GAAGngB,SAAS,CAACC,MAAV,CAAiBvH,MAAjB,EAAyBkI,UAAzB,CAAlB;EACA,MAAMwf,KAAK,GAAGD,SAAS,CAAC/e,mBAAV,CAA8B6e,gBAAgB,EAA9C,CAAd;EAEA,MAAM5c,MAAM,GAAG+c,KAAK,CAACzc,GAAN,CAAU,UAAApC,CAAC;EAAA,WAAIyd,YAAY,CAACzd,CAAD,EAAI7I,MAAJ,EAAYkI,UAAZ,CAAhB;EAAA,GAAX,CAAf;;EAEA,MAAIyC,MAAM,CAACgd,QAAP,CAAgBtrB,SAAhB,CAAJ,EAAgC;EAC9B,WAAO0J,KAAP;EACD;;EAED,SAAO4E,MAAP;EACD;;EAED,SAASid,iBAAT,CAA2Bjd,MAA3B,EAAmC3K,MAAnC,EAA2C;EAAA;;EACzC,SAAO,oBAAAlE,KAAK,CAACb,SAAN,EAAgB6P,MAAhB,yBAA0BH,MAAM,CAACM,GAAP,CAAW,UAAA1E,CAAC;EAAA,WAAIihB,qBAAqB,CAACjhB,CAAD,EAAIvG,MAAJ,CAAzB;EAAA,GAAZ,CAA1B,CAAP;EACD;EAED;;;;;EAIO,SAAS6nB,iBAAT,CAA2B7nB,MAA3B,EAAmCvC,KAAnC,EAA0CqD,MAA1C,EAAkD;EACvD,MAAM6J,MAAM,GAAGid,iBAAiB,CAACtgB,SAAS,CAACG,WAAV,CAAsB3G,MAAtB,CAAD,EAAgCd,MAAhC,CAAhC;EAAA,MACEyE,KAAK,GAAGkG,MAAM,CAACM,GAAP,CAAW,UAAA1E,CAAC;EAAA,WAAI6e,YAAY,CAAC7e,CAAD,EAAIvG,MAAJ,CAAhB;EAAA,GAAZ,CADV;EAAA,MAEE8nB,iBAAiB,GAAGrjB,KAAK,CAACjE,IAAN,CAAW,UAAA+F,CAAC;EAAA,WAAIA,CAAC,CAACia,aAAN;EAAA,GAAZ,CAFtB;;EAIA,MAAIsH,iBAAJ,EAAuB;EACrB,WAAO;EAAErqB,MAAAA,KAAK,EAALA,KAAF;EAASkN,MAAAA,MAAM,EAANA,MAAT;EAAiB6V,MAAAA,aAAa,EAAEsH,iBAAiB,CAACtH;EAAlD,KAAP;EACD,GAFD,MAEO;EAAA,sBAC2BgG,UAAU,CAAC/hB,KAAD,CADrC;EAAA,QACEsjB,WADF;EAAA,QACerB,QADf;EAAA,QAEHpS,KAFG,GAEK1I,MAAM,CAACmc,WAAD,EAAc,GAAd,CAFX;EAAA,iBAGqB5a,KAAK,CAAC1P,KAAD,EAAQ6W,KAAR,EAAeoS,QAAf,CAH1B;EAAA,QAGFsB,UAHE;EAAA,QAGUrB,OAHV;EAAA,gBAIcA,OAAO,GAAGG,mBAAmB,CAACH,OAAD,CAAtB,GAAkC,CAAC,IAAD,EAAO,IAAP,CAJvD;EAAA,QAIFnP,MAJE;EAAA,QAIM9N,IAJN;;EAKL,QAAI3M,cAAc,CAAC4pB,OAAD,EAAU,GAAV,CAAd,IAAgC5pB,cAAc,CAAC4pB,OAAD,EAAU,GAAV,CAAlD,EAAkE;EAChE,YAAM,IAAIvuB,6BAAJ,CACJ,uDADI,CAAN;EAGD;;EACD,WAAO;EAAEqF,MAAAA,KAAK,EAALA,KAAF;EAASkN,MAAAA,MAAM,EAANA,MAAT;EAAiB2J,MAAAA,KAAK,EAALA,KAAjB;EAAwB0T,MAAAA,UAAU,EAAVA,UAAxB;EAAoCrB,MAAAA,OAAO,EAAPA,OAApC;EAA6CnP,MAAAA,MAAM,EAANA,MAA7C;EAAqD9N,MAAAA,IAAI,EAAJA;EAArD,KAAP;EACD;EACF;EAEM,SAASue,eAAT,CAAyBjoB,MAAzB,EAAiCvC,KAAjC,EAAwCqD,MAAxC,EAAgD;EAAA,2BACb+mB,iBAAiB,CAAC7nB,MAAD,EAASvC,KAAT,EAAgBqD,MAAhB,CADJ;EAAA,MAC7C0W,MAD6C,sBAC7CA,MAD6C;EAAA,MACrC9N,IADqC,sBACrCA,IADqC;EAAA,MAC/B8W,aAD+B,sBAC/BA,aAD+B;;EAErD,SAAO,CAAChJ,MAAD,EAAS9N,IAAT,EAAe8W,aAAf,CAAP;EACD;;ECpZD,IAAM0H,aAAa,GAAG,CAAC,CAAD,EAAI,EAAJ,EAAQ,EAAR,EAAY,EAAZ,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,EAAoC,GAApC,EAAyC,GAAzC,EAA8C,GAA9C,EAAmD,GAAnD,CAAtB;EAAA,IACEC,UAAU,GAAG,CAAC,CAAD,EAAI,EAAJ,EAAQ,EAAR,EAAY,EAAZ,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,EAAoC,GAApC,EAAyC,GAAzC,EAA8C,GAA9C,EAAmD,GAAnD,CADf;;EAGA,SAASC,cAAT,CAAwB9vB,IAAxB,EAA8BsI,KAA9B,EAAqC;EACnC,SAAO,IAAIuK,OAAJ,CACL,mBADK,qBAEYvK,KAFZ,kBAE8B,OAAOA,KAFrC,eAEoDtI,IAFpD,wBAAP;EAID;;EAED,SAAS+vB,SAAT,CAAmBxvB,IAAnB,EAAyBC,KAAzB,EAAgCC,GAAhC,EAAqC;EACnC,MAAMuvB,EAAE,GAAG,IAAIppB,IAAJ,CAASA,IAAI,CAACC,GAAL,CAAStG,IAAT,EAAeC,KAAK,GAAG,CAAvB,EAA0BC,GAA1B,CAAT,EAAyCwvB,SAAzC,EAAX;EACA,SAAOD,EAAE,KAAK,CAAP,GAAW,CAAX,GAAeA,EAAtB;EACD;;EAED,SAASE,cAAT,CAAwB3vB,IAAxB,EAA8BC,KAA9B,EAAqCC,GAArC,EAA0C;EACxC,SAAOA,GAAG,GAAG,CAAC4F,UAAU,CAAC9F,IAAD,CAAV,GAAmBsvB,UAAnB,GAAgCD,aAAjC,EAAgDpvB,KAAK,GAAG,CAAxD,CAAb;EACD;;EAED,SAAS2vB,gBAAT,CAA0B5vB,IAA1B,EAAgCsR,OAAhC,EAAyC;EACvC,MAAMue,KAAK,GAAG/pB,UAAU,CAAC9F,IAAD,CAAV,GAAmBsvB,UAAnB,GAAgCD,aAA9C;EAAA,MACES,MAAM,GAAGD,KAAK,CAAC3D,SAAN,CAAgB,UAAAjd,CAAC;EAAA,WAAIA,CAAC,GAAGqC,OAAR;EAAA,GAAjB,CADX;EAAA,MAEEpR,GAAG,GAAGoR,OAAO,GAAGue,KAAK,CAACC,MAAD,CAFvB;EAGA,SAAO;EAAE7vB,IAAAA,KAAK,EAAE6vB,MAAM,GAAG,CAAlB;EAAqB5vB,IAAAA,GAAG,EAAHA;EAArB,GAAP;EACD;EAED;;;;;EAIO,SAAS6vB,eAAT,CAAyBC,OAAzB,EAAkC;EAAA,MAC/BhwB,IAD+B,GACVgwB,OADU,CAC/BhwB,IAD+B;EAAA,MACzBC,KADyB,GACV+vB,OADU,CACzB/vB,KADyB;EAAA,MAClBC,GADkB,GACV8vB,OADU,CAClB9vB,GADkB;EAAA,MAErCoR,OAFqC,GAE3Bqe,cAAc,CAAC3vB,IAAD,EAAOC,KAAP,EAAcC,GAAd,CAFa;EAAA,MAGrCI,OAHqC,GAG3BkvB,SAAS,CAACxvB,IAAD,EAAOC,KAAP,EAAcC,GAAd,CAHkB;EAKvC,MAAImR,UAAU,GAAG5M,IAAI,CAACC,KAAL,CAAW,CAAC4M,OAAO,GAAGhR,OAAV,GAAoB,EAArB,IAA2B,CAAtC,CAAjB;EAAA,MACEqG,QADF;;EAGA,MAAI0K,UAAU,GAAG,CAAjB,EAAoB;EAClB1K,IAAAA,QAAQ,GAAG3G,IAAI,GAAG,CAAlB;EACAqR,IAAAA,UAAU,GAAG3K,eAAe,CAACC,QAAD,CAA5B;EACD,GAHD,MAGO,IAAI0K,UAAU,GAAG3K,eAAe,CAAC1G,IAAD,CAAhC,EAAwC;EAC7C2G,IAAAA,QAAQ,GAAG3G,IAAI,GAAG,CAAlB;EACAqR,IAAAA,UAAU,GAAG,CAAb;EACD,GAHM,MAGA;EACL1K,IAAAA,QAAQ,GAAG3G,IAAX;EACD;;EAED,SAAOmC,MAAM,CAACqF,MAAP,CAAc;EAAEb,IAAAA,QAAQ,EAARA,QAAF;EAAY0K,IAAAA,UAAU,EAAVA,UAAZ;EAAwB/Q,IAAAA,OAAO,EAAPA;EAAxB,GAAd,EAAiD2J,UAAU,CAAC+lB,OAAD,CAA3D,CAAP;EACD;EAEM,SAASC,eAAT,CAAyBC,QAAzB,EAAmC;EAAA,MAChCvpB,QADgC,GACEupB,QADF,CAChCvpB,QADgC;EAAA,MACtB0K,UADsB,GACE6e,QADF,CACtB7e,UADsB;EAAA,MACV/Q,OADU,GACE4vB,QADF,CACV5vB,OADU;EAAA,MAEtC6vB,aAFsC,GAEtBX,SAAS,CAAC7oB,QAAD,EAAW,CAAX,EAAc,CAAd,CAFa;EAAA,MAGtCypB,UAHsC,GAGzBrqB,UAAU,CAACY,QAAD,CAHe;EAKxC,MAAI2K,OAAO,GAAGD,UAAU,GAAG,CAAb,GAAiB/Q,OAAjB,GAA2B6vB,aAA3B,GAA2C,CAAzD;EAAA,MACEnwB,IADF;;EAGA,MAAIsR,OAAO,GAAG,CAAd,EAAiB;EACftR,IAAAA,IAAI,GAAG2G,QAAQ,GAAG,CAAlB;EACA2K,IAAAA,OAAO,IAAIvL,UAAU,CAAC/F,IAAD,CAArB;EACD,GAHD,MAGO,IAAIsR,OAAO,GAAG8e,UAAd,EAA0B;EAC/BpwB,IAAAA,IAAI,GAAG2G,QAAQ,GAAG,CAAlB;EACA2K,IAAAA,OAAO,IAAIvL,UAAU,CAACY,QAAD,CAArB;EACD,GAHM,MAGA;EACL3G,IAAAA,IAAI,GAAG2G,QAAP;EACD;;EAhBuC,0BAkBjBipB,gBAAgB,CAAC5vB,IAAD,EAAOsR,OAAP,CAlBC;EAAA,MAkBhCrR,KAlBgC,qBAkBhCA,KAlBgC;EAAA,MAkBzBC,GAlByB,qBAkBzBA,GAlByB;;EAoBxC,SAAOiC,MAAM,CAACqF,MAAP,CAAc;EAAExH,IAAAA,IAAI,EAAJA,IAAF;EAAQC,IAAAA,KAAK,EAALA,KAAR;EAAeC,IAAAA,GAAG,EAAHA;EAAf,GAAd,EAAoC+J,UAAU,CAACimB,QAAD,CAA9C,CAAP;EACD;EAEM,SAASG,kBAAT,CAA4BC,QAA5B,EAAsC;EAAA,MACnCtwB,IADmC,GACdswB,QADc,CACnCtwB,IADmC;EAAA,MAC7BC,KAD6B,GACdqwB,QADc,CAC7BrwB,KAD6B;EAAA,MACtBC,GADsB,GACdowB,QADc,CACtBpwB,GADsB;EAAA,MAEzCoR,OAFyC,GAE/Bqe,cAAc,CAAC3vB,IAAD,EAAOC,KAAP,EAAcC,GAAd,CAFiB;EAI3C,SAAOiC,MAAM,CAACqF,MAAP,CAAc;EAAExH,IAAAA,IAAI,EAAJA,IAAF;EAAQsR,IAAAA,OAAO,EAAPA;EAAR,GAAd,EAAiCrH,UAAU,CAACqmB,QAAD,CAA3C,CAAP;EACD;EAEM,SAASC,kBAAT,CAA4BC,WAA5B,EAAyC;EAAA,MACtCxwB,IADsC,GACpBwwB,WADoB,CACtCxwB,IADsC;EAAA,MAChCsR,OADgC,GACpBkf,WADoB,CAChClf,OADgC;EAAA,2BAE3Bse,gBAAgB,CAAC5vB,IAAD,EAAOsR,OAAP,CAFW;EAAA,MAE1CrR,KAF0C,sBAE1CA,KAF0C;EAAA,MAEnCC,GAFmC,sBAEnCA,GAFmC;;EAI9C,SAAOiC,MAAM,CAACqF,MAAP,CAAc;EAAExH,IAAAA,IAAI,EAAJA,IAAF;EAAQC,IAAAA,KAAK,EAALA,KAAR;EAAeC,IAAAA,GAAG,EAAHA;EAAf,GAAd,EAAoC+J,UAAU,CAACumB,WAAD,CAA9C,CAAP;EACD;EAEM,SAASC,kBAAT,CAA4B3sB,GAA5B,EAAiC;EACtC,MAAM4sB,SAAS,GAAG1uB,SAAS,CAAC8B,GAAG,CAAC6C,QAAL,CAA3B;EAAA,MACEgqB,SAAS,GAAGvsB,cAAc,CAACN,GAAG,CAACuN,UAAL,EAAiB,CAAjB,EAAoB3K,eAAe,CAAC5C,GAAG,CAAC6C,QAAL,CAAnC,CAD5B;EAAA,MAEEiqB,YAAY,GAAGxsB,cAAc,CAACN,GAAG,CAACxD,OAAL,EAAc,CAAd,EAAiB,CAAjB,CAF/B;;EAIA,MAAI,CAACowB,SAAL,EAAgB;EACd,WAAOnB,cAAc,CAAC,UAAD,EAAazrB,GAAG,CAAC6C,QAAjB,CAArB;EACD,GAFD,MAEO,IAAI,CAACgqB,SAAL,EAAgB;EACrB,WAAOpB,cAAc,CAAC,MAAD,EAASzrB,GAAG,CAAC8e,IAAb,CAArB;EACD,GAFM,MAEA,IAAI,CAACgO,YAAL,EAAmB;EACxB,WAAOrB,cAAc,CAAC,SAAD,EAAYzrB,GAAG,CAACxD,OAAhB,CAArB;EACD,GAFM,MAEA,OAAO,KAAP;EACR;EAEM,SAASuwB,qBAAT,CAA+B/sB,GAA/B,EAAoC;EACzC,MAAM4sB,SAAS,GAAG1uB,SAAS,CAAC8B,GAAG,CAAC9D,IAAL,CAA3B;EAAA,MACE8wB,YAAY,GAAG1sB,cAAc,CAACN,GAAG,CAACwN,OAAL,EAAc,CAAd,EAAiBvL,UAAU,CAACjC,GAAG,CAAC9D,IAAL,CAA3B,CAD/B;;EAGA,MAAI,CAAC0wB,SAAL,EAAgB;EACd,WAAOnB,cAAc,CAAC,MAAD,EAASzrB,GAAG,CAAC9D,IAAb,CAArB;EACD,GAFD,MAEO,IAAI,CAAC8wB,YAAL,EAAmB;EACxB,WAAOvB,cAAc,CAAC,SAAD,EAAYzrB,GAAG,CAACwN,OAAhB,CAArB;EACD,GAFM,MAEA,OAAO,KAAP;EACR;EAEM,SAASyf,uBAAT,CAAiCjtB,GAAjC,EAAsC;EAC3C,MAAM4sB,SAAS,GAAG1uB,SAAS,CAAC8B,GAAG,CAAC9D,IAAL,CAA3B;EAAA,MACEgxB,UAAU,GAAG5sB,cAAc,CAACN,GAAG,CAAC7D,KAAL,EAAY,CAAZ,EAAe,EAAf,CAD7B;EAAA,MAEEgxB,QAAQ,GAAG7sB,cAAc,CAACN,GAAG,CAAC5D,GAAL,EAAU,CAAV,EAAa8F,WAAW,CAAClC,GAAG,CAAC9D,IAAL,EAAW8D,GAAG,CAAC7D,KAAf,CAAxB,CAF3B;;EAIA,MAAI,CAACywB,SAAL,EAAgB;EACd,WAAOnB,cAAc,CAAC,MAAD,EAASzrB,GAAG,CAAC9D,IAAb,CAArB;EACD,GAFD,MAEO,IAAI,CAACgxB,UAAL,EAAiB;EACtB,WAAOzB,cAAc,CAAC,OAAD,EAAUzrB,GAAG,CAAC7D,KAAd,CAArB;EACD,GAFM,MAEA,IAAI,CAACgxB,QAAL,EAAe;EACpB,WAAO1B,cAAc,CAAC,KAAD,EAAQzrB,GAAG,CAAC5D,GAAZ,CAArB;EACD,GAFM,MAEA,OAAO,KAAP;EACR;EAEM,SAASgxB,kBAAT,CAA4BptB,GAA5B,EAAiC;EAAA,MAC9BtD,IAD8B,GACQsD,GADR,CAC9BtD,IAD8B;EAAA,MACxBC,MADwB,GACQqD,GADR,CACxBrD,MADwB;EAAA,MAChBE,MADgB,GACQmD,GADR,CAChBnD,MADgB;EAAA,MACR4F,WADQ,GACQzC,GADR,CACRyC,WADQ;EAEtC,MAAM4qB,SAAS,GACX/sB,cAAc,CAAC5D,IAAD,EAAO,CAAP,EAAU,EAAV,CAAd,IACCA,IAAI,KAAK,EAAT,IAAeC,MAAM,KAAK,CAA1B,IAA+BE,MAAM,KAAK,CAA1C,IAA+C4F,WAAW,KAAK,CAFpE;EAAA,MAGE6qB,WAAW,GAAGhtB,cAAc,CAAC3D,MAAD,EAAS,CAAT,EAAY,EAAZ,CAH9B;EAAA,MAIE4wB,WAAW,GAAGjtB,cAAc,CAACzD,MAAD,EAAS,CAAT,EAAY,EAAZ,CAJ9B;EAAA,MAKE2wB,gBAAgB,GAAGltB,cAAc,CAACmC,WAAD,EAAc,CAAd,EAAiB,GAAjB,CALnC;;EAOA,MAAI,CAAC4qB,SAAL,EAAgB;EACd,WAAO5B,cAAc,CAAC,MAAD,EAAS/uB,IAAT,CAArB;EACD,GAFD,MAEO,IAAI,CAAC4wB,WAAL,EAAkB;EACvB,WAAO7B,cAAc,CAAC,QAAD,EAAW9uB,MAAX,CAArB;EACD,GAFM,MAEA,IAAI,CAAC4wB,WAAL,EAAkB;EACvB,WAAO9B,cAAc,CAAC,QAAD,EAAW5uB,MAAX,CAArB;EACD,GAFM,MAEA,IAAI,CAAC2wB,gBAAL,EAAuB;EAC5B,WAAO/B,cAAc,CAAC,aAAD,EAAgBhpB,WAAhB,CAArB;EACD,GAFM,MAEA,OAAO,KAAP;EACR;;EChHD,IAAMia,SAAO,GAAG,kBAAhB;EACA,IAAM+Q,QAAQ,GAAG,OAAjB;;EAEA,SAASC,eAAT,CAAyB3gB,IAAzB,EAA+B;EAC7B,SAAO,IAAIyB,OAAJ,CAAY,kBAAZ,kBAA6CzB,IAAI,CAACsD,IAAlD,yBAAP;EACD;;;EAGD,SAASsd,sBAAT,CAAgCrmB,EAAhC,EAAoC;EAClC,MAAIA,EAAE,CAAC8kB,QAAH,KAAgB,IAApB,EAA0B;EACxB9kB,IAAAA,EAAE,CAAC8kB,QAAH,GAAcH,eAAe,CAAC3kB,EAAE,CAAC8D,CAAJ,CAA7B;EACD;;EACD,SAAO9D,EAAE,CAAC8kB,QAAV;EACD;EAGD;;;EACA,SAAS/V,OAAT,CAAeuX,IAAf,EAAqBtX,IAArB,EAA2B;EACzB,MAAMtL,OAAO,GAAG;EACd7H,IAAAA,EAAE,EAAEyqB,IAAI,CAACzqB,EADK;EAEd4J,IAAAA,IAAI,EAAE6gB,IAAI,CAAC7gB,IAFG;EAGd3B,IAAAA,CAAC,EAAEwiB,IAAI,CAACxiB,CAHM;EAIdpN,IAAAA,CAAC,EAAE4vB,IAAI,CAAC5vB,CAJM;EAKdwN,IAAAA,GAAG,EAAEoiB,IAAI,CAACpiB,GALI;EAMdiT,IAAAA,OAAO,EAAEmP,IAAI,CAACnP;EANA,GAAhB;EAQA,SAAO,IAAI7K,QAAJ,CAAavV,MAAM,CAACqF,MAAP,CAAc,EAAd,EAAkBsH,OAAlB,EAA2BsL,IAA3B,EAAiC;EAAEuX,IAAAA,GAAG,EAAE7iB;EAAP,GAAjC,CAAb,CAAP;EACD;EAGD;;;EACA,SAAS8iB,SAAT,CAAmBC,OAAnB,EAA4B/vB,CAA5B,EAA+BgwB,EAA/B,EAAmC;EACjC;EACA,MAAIC,QAAQ,GAAGF,OAAO,GAAG/vB,CAAC,GAAG,EAAJ,GAAS,IAAlC,CAFiC;;EAKjC,MAAMkwB,EAAE,GAAGF,EAAE,CAACpoB,MAAH,CAAUqoB,QAAV,CAAX,CALiC;;EAQjC,MAAIjwB,CAAC,KAAKkwB,EAAV,EAAc;EACZ,WAAO,CAACD,QAAD,EAAWjwB,CAAX,CAAP;EACD,GAVgC;;;EAajCiwB,EAAAA,QAAQ,IAAI,CAACC,EAAE,GAAGlwB,CAAN,IAAW,EAAX,GAAgB,IAA5B,CAbiC;;EAgBjC,MAAMmwB,EAAE,GAAGH,EAAE,CAACpoB,MAAH,CAAUqoB,QAAV,CAAX;;EACA,MAAIC,EAAE,KAAKC,EAAX,EAAe;EACb,WAAO,CAACF,QAAD,EAAWC,EAAX,CAAP;EACD,GAnBgC;;;EAsBjC,SAAO,CAACH,OAAO,GAAGptB,IAAI,CAAC2mB,GAAL,CAAS4G,EAAT,EAAaC,EAAb,IAAmB,EAAnB,GAAwB,IAAnC,EAAyCxtB,IAAI,CAAC4mB,GAAL,CAAS2G,EAAT,EAAaC,EAAb,CAAzC,CAAP;EACD;;;EAGD,SAASC,OAAT,CAAiBjrB,EAAjB,EAAqByC,MAArB,EAA6B;EAC3BzC,EAAAA,EAAE,IAAIyC,MAAM,GAAG,EAAT,GAAc,IAApB;EAEA,MAAMtD,CAAC,GAAG,IAAIC,IAAJ,CAASY,EAAT,CAAV;EAEA,SAAO;EACLjH,IAAAA,IAAI,EAAEoG,CAAC,CAACK,cAAF,EADD;EAELxG,IAAAA,KAAK,EAAEmG,CAAC,CAAC+rB,WAAF,KAAkB,CAFpB;EAGLjyB,IAAAA,GAAG,EAAEkG,CAAC,CAACgsB,UAAF,EAHA;EAIL5xB,IAAAA,IAAI,EAAE4F,CAAC,CAACisB,WAAF,EAJD;EAKL5xB,IAAAA,MAAM,EAAE2F,CAAC,CAACksB,aAAF,EALH;EAML3xB,IAAAA,MAAM,EAAEyF,CAAC,CAACmsB,aAAF,EANH;EAOLhsB,IAAAA,WAAW,EAAEH,CAAC,CAACosB,kBAAF;EAPR,GAAP;EASD;;;EAGD,SAASC,OAAT,CAAiB3uB,GAAjB,EAAsB4F,MAAtB,EAA8BmH,IAA9B,EAAoC;EAClC,SAAO+gB,SAAS,CAACzrB,YAAY,CAACrC,GAAD,CAAb,EAAoB4F,MAApB,EAA4BmH,IAA5B,CAAhB;EACD;;;EAGD,SAAS6hB,UAAT,CAAoBhB,IAApB,EAA0BjgB,GAA1B,EAA+B;EAAA;;EAC7B,MAAM1N,IAAI,GAAG5B,MAAM,CAAC4B,IAAP,CAAY0N,GAAG,CAAC0P,MAAhB,CAAb;;EACA,MAAIpd,IAAI,CAACwF,OAAL,CAAa,cAAb,MAAiC,CAAC,CAAtC,EAAyC;EACvCxF,IAAAA,IAAI,CAACqL,IAAL,CAAU,cAAV;EACD;;EAEDqC,EAAAA,GAAG,GAAG,QAAAA,GAAG,EAACU,OAAJ,aAAepO,IAAf,CAAN;EAEA,MAAM4uB,IAAI,GAAGjB,IAAI,CAAC5vB,CAAlB;EAAA,MACE9B,IAAI,GAAG0xB,IAAI,CAACxiB,CAAL,CAAOlP,IAAP,GAAcyR,GAAG,CAAC5F,KAD3B;EAAA,MAEE5L,KAAK,GAAGyxB,IAAI,CAACxiB,CAAL,CAAOjP,KAAP,GAAewR,GAAG,CAAChH,MAAnB,GAA4BgH,GAAG,CAAC3F,QAAJ,GAAe,CAFrD;EAAA,MAGEoD,CAAC,GAAG/M,MAAM,CAACqF,MAAP,CAAc,EAAd,EAAkBkqB,IAAI,CAACxiB,CAAvB,EAA0B;EAC5BlP,IAAAA,IAAI,EAAJA,IAD4B;EAE5BC,IAAAA,KAAK,EAALA,KAF4B;EAG5BC,IAAAA,GAAG,EAAEuE,IAAI,CAAC2mB,GAAL,CAASsG,IAAI,CAACxiB,CAAL,CAAOhP,GAAhB,EAAqB8F,WAAW,CAAChG,IAAD,EAAOC,KAAP,CAAhC,IAAiDwR,GAAG,CAACzF,IAArD,GAA4DyF,GAAG,CAAC1F,KAAJ,GAAY;EAHjD,GAA1B,CAHN;EAAA,MAQE6mB,WAAW,GAAGvR,QAAQ,CAAC/H,UAAT,CAAoB;EAChC3P,IAAAA,KAAK,EAAE8H,GAAG,CAAC9H,KADqB;EAEhCC,IAAAA,OAAO,EAAE6H,GAAG,CAAC7H,OAFmB;EAGhCqC,IAAAA,OAAO,EAAEwF,GAAG,CAACxF,OAHmB;EAIhC6R,IAAAA,YAAY,EAAErM,GAAG,CAACqM;EAJc,GAApB,EAKXuF,EALW,CAKR,cALQ,CARhB;EAAA,MAcEwO,OAAO,GAAG1rB,YAAY,CAAC+I,CAAD,CAdxB;;EAR6B,mBAwBf0iB,SAAS,CAACC,OAAD,EAAUc,IAAV,EAAgBjB,IAAI,CAAC7gB,IAArB,CAxBM;EAAA,MAwBxB5J,EAxBwB;EAAA,MAwBpBnF,CAxBoB;;EA0B7B,MAAI8wB,WAAW,KAAK,CAApB,EAAuB;EACrB3rB,IAAAA,EAAE,IAAI2rB,WAAN,CADqB;;EAGrB9wB,IAAAA,CAAC,GAAG4vB,IAAI,CAAC7gB,IAAL,CAAUnH,MAAV,CAAiBzC,EAAjB,CAAJ;EACD;;EAED,SAAO;EAAEA,IAAAA,EAAE,EAAFA,EAAF;EAAMnF,IAAAA,CAAC,EAADA;EAAN,GAAP;EACD;EAGD;;;EACA,SAAS+wB,mBAAT,CAA6BnrB,MAA7B,EAAqCorB,UAArC,EAAiDnkB,IAAjD,EAAuD1G,MAAvD,EAA+D0a,IAA/D,EAAqE;EAAA,MAC3DsF,OAD2D,GACzCtZ,IADyC,CAC3DsZ,OAD2D;EAAA,MAClDpX,IADkD,GACzClC,IADyC,CAClDkC,IADkD;;EAEnE,MAAInJ,MAAM,IAAIvF,MAAM,CAAC4B,IAAP,CAAY2D,MAAZ,EAAoBnE,MAApB,KAA+B,CAA7C,EAAgD;EAC9C,QAAMwvB,kBAAkB,GAAGD,UAAU,IAAIjiB,IAAzC;EAAA,QACE6gB,IAAI,GAAGha,QAAQ,CAAC4B,UAAT,CACLnX,MAAM,CAACqF,MAAP,CAAcE,MAAd,EAAsBiH,IAAtB,EAA4B;EAC1BkC,MAAAA,IAAI,EAAEkiB,kBADoB;EAE1B;EACA9K,MAAAA,OAAO,EAAEzkB;EAHiB,KAA5B,CADK,CADT;EAQA,WAAOykB,OAAO,GAAGyJ,IAAH,GAAUA,IAAI,CAACzJ,OAAL,CAAapX,IAAb,CAAxB;EACD,GAVD,MAUO;EACL,WAAO6G,QAAQ,CAAC6K,OAAT,CACL,IAAIjQ,OAAJ,CAAY,YAAZ,mBAAwCqQ,IAAxC,8BAAoE1a,MAApE,CADK,CAAP;EAGD;EACF;EAGD;;;EACA,SAAS+qB,YAAT,CAAsB5nB,EAAtB,EAA0BnD,MAA1B,EAAkC0I,MAAlC,EAAiD;EAAA,MAAfA,MAAe;EAAfA,IAAAA,MAAe,GAAN,IAAM;EAAA;;EAC/C,SAAOvF,EAAE,CAACwF,OAAH,GACHnC,SAAS,CAACC,MAAV,CAAiBuH,MAAM,CAACvH,MAAP,CAAc,OAAd,CAAjB,EAAyC;EACvCiC,IAAAA,MAAM,EAANA,MADuC;EAEvCV,IAAAA,WAAW,EAAE;EAF0B,GAAzC,EAGGG,wBAHH,CAG4BhF,EAH5B,EAGgCnD,MAHhC,CADG,GAKH,IALJ;EAMD;EAGD;;;EACA,SAASgrB,gBAAT,CACE7nB,EADF,QAUE;EAAA,kCAPE8nB,eAOF;EAAA,MAPEA,eAOF,qCAPoB,KAOpB;EAAA,mCANEC,oBAMF;EAAA,MANEA,oBAMF,sCANyB,KAMzB;EAAA,MALEC,aAKF,QALEA,aAKF;EAAA,8BAJEC,WAIF;EAAA,MAJEA,WAIF,iCAJgB,KAIhB;EAAA,4BAHEC,SAGF;EAAA,MAHEA,SAGF,+BAHc,KAGd;EAAA,yBAFErrB,MAEF;EAAA,MAFEA,MAEF,4BAFW,UAEX;EACA,MAAI4G,GAAG,GAAG5G,MAAM,KAAK,OAAX,GAAqB,MAArB,GAA8B,OAAxC;;EAEA,MAAI,CAACirB,eAAD,IAAoB9nB,EAAE,CAACzK,MAAH,KAAc,CAAlC,IAAuCyK,EAAE,CAAC7E,WAAH,KAAmB,CAA9D,EAAiE;EAC/DsI,IAAAA,GAAG,IAAI5G,MAAM,KAAK,OAAX,GAAqB,IAArB,GAA4B,KAAnC;;EACA,QAAI,CAACkrB,oBAAD,IAAyB/nB,EAAE,CAAC7E,WAAH,KAAmB,CAAhD,EAAmD;EACjDsI,MAAAA,GAAG,IAAI,MAAP;EACD;EACF;;EAED,MAAI,CAACwkB,WAAW,IAAID,aAAhB,KAAkCE,SAAtC,EAAiD;EAC/CzkB,IAAAA,GAAG,IAAI,GAAP;EACD;;EAED,MAAIwkB,WAAJ,EAAiB;EACfxkB,IAAAA,GAAG,IAAI,GAAP;EACD,GAFD,MAEO,IAAIukB,aAAJ,EAAmB;EACxBvkB,IAAAA,GAAG,IAAI5G,MAAM,KAAK,OAAX,GAAqB,KAArB,GAA6B,IAApC;EACD;;EAED,SAAO+qB,YAAY,CAAC5nB,EAAD,EAAKyD,GAAL,CAAnB;EACD;;;EAGD,IAAM0kB,iBAAiB,GAAG;EACtBtzB,EAAAA,KAAK,EAAE,CADe;EAEtBC,EAAAA,GAAG,EAAE,CAFiB;EAGtBM,EAAAA,IAAI,EAAE,CAHgB;EAItBC,EAAAA,MAAM,EAAE,CAJc;EAKtBE,EAAAA,MAAM,EAAE,CALc;EAMtB4F,EAAAA,WAAW,EAAE;EANS,CAA1B;EAAA,IAQEitB,qBAAqB,GAAG;EACtBniB,EAAAA,UAAU,EAAE,CADU;EAEtB/Q,EAAAA,OAAO,EAAE,CAFa;EAGtBE,EAAAA,IAAI,EAAE,CAHgB;EAItBC,EAAAA,MAAM,EAAE,CAJc;EAKtBE,EAAAA,MAAM,EAAE,CALc;EAMtB4F,EAAAA,WAAW,EAAE;EANS,CAR1B;EAAA,IAgBEktB,wBAAwB,GAAG;EACzBniB,EAAAA,OAAO,EAAE,CADgB;EAEzB9Q,EAAAA,IAAI,EAAE,CAFmB;EAGzBC,EAAAA,MAAM,EAAE,CAHiB;EAIzBE,EAAAA,MAAM,EAAE,CAJiB;EAKzB4F,EAAAA,WAAW,EAAE;EALY,CAhB7B;;EAyBA,IAAMua,cAAY,GAAG,CAAC,MAAD,EAAS,OAAT,EAAkB,KAAlB,EAAyB,MAAzB,EAAiC,QAAjC,EAA2C,QAA3C,EAAqD,aAArD,CAArB;EAAA,IACE4S,gBAAgB,GAAG,CACjB,UADiB,EAEjB,YAFiB,EAGjB,SAHiB,EAIjB,MAJiB,EAKjB,QALiB,EAMjB,QANiB,EAOjB,aAPiB,CADrB;EAAA,IAUEC,mBAAmB,GAAG,CAAC,MAAD,EAAS,SAAT,EAAoB,MAApB,EAA4B,QAA5B,EAAsC,QAAtC,EAAgD,aAAhD,CAVxB;;EAaA,SAASlR,aAAT,CAAuBhjB,IAAvB,EAA6B;EAC3B,MAAM4J,UAAU,GAAG;EACjBrJ,IAAAA,IAAI,EAAE,MADW;EAEjB6L,IAAAA,KAAK,EAAE,MAFU;EAGjB5L,IAAAA,KAAK,EAAE,OAHU;EAIjBwK,IAAAA,MAAM,EAAE,OAJS;EAKjBvK,IAAAA,GAAG,EAAE,KALY;EAMjB8L,IAAAA,IAAI,EAAE,KANW;EAOjBxL,IAAAA,IAAI,EAAE,MAPW;EAQjBmJ,IAAAA,KAAK,EAAE,MARU;EASjBlJ,IAAAA,MAAM,EAAE,QATS;EAUjBmJ,IAAAA,OAAO,EAAE,QAVQ;EAWjB2H,IAAAA,OAAO,EAAE,SAXQ;EAYjBzF,IAAAA,QAAQ,EAAE,SAZO;EAajBnL,IAAAA,MAAM,EAAE,QAbS;EAcjBsL,IAAAA,OAAO,EAAE,QAdQ;EAejB1F,IAAAA,WAAW,EAAE,aAfI;EAgBjBuX,IAAAA,YAAY,EAAE,aAhBG;EAiBjBxd,IAAAA,OAAO,EAAE,SAjBQ;EAkBjBuK,IAAAA,QAAQ,EAAE,SAlBO;EAmBjB+oB,IAAAA,UAAU,EAAE,YAnBK;EAoBjBC,IAAAA,WAAW,EAAE,YApBI;EAqBjBC,IAAAA,WAAW,EAAE,YArBI;EAsBjBC,IAAAA,QAAQ,EAAE,UAtBO;EAuBjBC,IAAAA,SAAS,EAAE,UAvBM;EAwBjB1iB,IAAAA,OAAO,EAAE;EAxBQ,IAyBjB7R,IAAI,CAACqI,WAAL,EAzBiB,CAAnB;EA2BA,MAAI,CAACuB,UAAL,EAAiB,MAAM,IAAI7J,gBAAJ,CAAqBC,IAArB,CAAN;EAEjB,SAAO4J,UAAP;EACD;EAGD;EACA;;;EACA,SAAS4qB,OAAT,CAAiBnwB,GAAjB,EAAsB+M,IAAtB,EAA4B;EAC1B;EACA,uDAAgBiQ,cAAhB,wCAA8B;EAAA,QAAnBxX,CAAmB;;EAC5B,QAAIzH,WAAW,CAACiC,GAAG,CAACwF,CAAD,CAAJ,CAAf,EAAyB;EACvBxF,MAAAA,GAAG,CAACwF,CAAD,CAAH,GAASiqB,iBAAiB,CAACjqB,CAAD,CAA1B;EACD;EACF;;EAED,MAAMiZ,OAAO,GAAGwO,uBAAuB,CAACjtB,GAAD,CAAvB,IAAgCotB,kBAAkB,CAACptB,GAAD,CAAlE;;EACA,MAAIye,OAAJ,EAAa;EACX,WAAO7K,QAAQ,CAAC6K,OAAT,CAAiBA,OAAjB,CAAP;EACD;;EAEK,MAAA2R,KAAK,GAAGne,QAAQ,CAACL,GAAT,EAAR;EAAA,MACJye,YADI,GACWtjB,IAAI,CAACnH,MAAL,CAAYwqB,KAAZ,CADX;EAAA,iBAEMzB,OAAO,CAAC3uB,GAAD,EAAMqwB,YAAN,EAAoBtjB,IAApB,CAFb;EAAA,MAEH5J,EAFG;EAAA,MAECnF,CAFD;;EAIN,SAAO,IAAI4V,QAAJ,CAAa;EAClBzQ,IAAAA,EAAE,EAAFA,EADkB;EAElB4J,IAAAA,IAAI,EAAJA,IAFkB;EAGlB/O,IAAAA,CAAC,EAADA;EAHkB,GAAb,CAAP;EAKD;;EAED,SAASsyB,YAAT,CAAsB1P,KAAtB,EAA6BC,GAA7B,EAAkChW,IAAlC,EAAwC;EACtC,MAAM9I,KAAK,GAAGhE,WAAW,CAAC8M,IAAI,CAAC9I,KAAN,CAAX,GAA0B,IAA1B,GAAiC8I,IAAI,CAAC9I,KAApD;EAAA,MACEoC,MAAM,GAAG,SAATA,MAAS,CAACiH,CAAD,EAAIzP,IAAJ,EAAa;EACpByP,IAAAA,CAAC,GAAG5J,OAAO,CAAC4J,CAAD,EAAIrJ,KAAK,IAAI8I,IAAI,CAAC0lB,SAAd,GAA0B,CAA1B,GAA8B,CAAlC,EAAqC,IAArC,CAAX;EACA,QAAMzF,SAAS,GAAGjK,GAAG,CAACrV,GAAJ,CAAQ6K,KAAR,CAAcxL,IAAd,EAAoBiM,YAApB,CAAiCjM,IAAjC,CAAlB;EACA,WAAOigB,SAAS,CAAC3mB,MAAV,CAAiBiH,CAAjB,EAAoBzP,IAApB,CAAP;EACD,GALH;EAAA,MAME0pB,MAAM,GAAG,SAATA,MAAS,CAAA1pB,IAAI,EAAI;EACf,QAAIkP,IAAI,CAAC0lB,SAAT,EAAoB;EAClB,UAAI,CAAC1P,GAAG,CAACe,OAAJ,CAAYhB,KAAZ,EAAmBjlB,IAAnB,CAAL,EAA+B;EAC7B,eAAOklB,GAAG,CACPa,OADI,CACI/lB,IADJ,EAEJgmB,IAFI,CAECf,KAAK,CAACc,OAAN,CAAc/lB,IAAd,CAFD,EAEsBA,IAFtB,EAGJoS,GAHI,CAGApS,IAHA,CAAP;EAID,OALD,MAKO,OAAO,CAAP;EACR,KAPD,MAOO;EACL,aAAOklB,GAAG,CAACc,IAAJ,CAASf,KAAT,EAAgBjlB,IAAhB,EAAsBoS,GAAtB,CAA0BpS,IAA1B,CAAP;EACD;EACF,GAjBH;;EAmBA,MAAIkP,IAAI,CAAClP,IAAT,EAAe;EACb,WAAOwI,MAAM,CAACkhB,MAAM,CAACxa,IAAI,CAAClP,IAAN,CAAP,EAAoBkP,IAAI,CAAClP,IAAzB,CAAb;EACD;;EAED,wDAAmBkP,IAAI,CAAC/C,KAAxB,2CAA+B;EAAA,QAApBnM,IAAoB;EAC7B,QAAMgM,KAAK,GAAG0d,MAAM,CAAC1pB,IAAD,CAApB;;EACA,QAAIgF,IAAI,CAACoF,GAAL,CAAS4B,KAAT,KAAmB,CAAvB,EAA0B;EACxB,aAAOxD,MAAM,CAACwD,KAAD,EAAQhM,IAAR,CAAb;EACD;EACF;;EACD,SAAOwI,MAAM,CAAC,CAAD,EAAI0G,IAAI,CAAC/C,KAAL,CAAW+C,IAAI,CAAC/C,KAAL,CAAWrI,MAAX,GAAoB,CAA/B,CAAJ,CAAb;EACD;EAED;;;;;;;;;;;;;;;;;;;;;;MAoBqBmU;EACnB;;;EAGA,oBAAY2K,MAAZ,EAAoB;EAClB,QAAMxR,IAAI,GAAGwR,MAAM,CAACxR,IAAP,IAAekF,QAAQ,CAACP,WAArC;EAEA,QAAI+M,OAAO,GACTF,MAAM,CAACE,OAAP,KACC5Z,MAAM,CAACC,KAAP,CAAayZ,MAAM,CAACpb,EAApB,IAA0B,IAAIqL,OAAJ,CAAY,eAAZ,CAA1B,GAAyD,IAD1D,MAEC,CAACzB,IAAI,CAACD,OAAN,GAAgB4gB,eAAe,CAAC3gB,IAAD,CAA/B,GAAwC,IAFzC,CADF;EAIA;;;;EAGA,SAAK5J,EAAL,GAAUpF,WAAW,CAACwgB,MAAM,CAACpb,EAAR,CAAX,GAAyB8O,QAAQ,CAACL,GAAT,EAAzB,GAA0C2M,MAAM,CAACpb,EAA3D;EAEA,QAAIiI,CAAC,GAAG,IAAR;EAAA,QACEpN,CAAC,GAAG,IADN;;EAEA,QAAI,CAACygB,OAAL,EAAc;EACZ,UAAM+R,SAAS,GAAGjS,MAAM,CAACsP,GAAP,IAActP,MAAM,CAACsP,GAAP,CAAW1qB,EAAX,KAAkB,KAAKA,EAArC,IAA2Cob,MAAM,CAACsP,GAAP,CAAW9gB,IAAX,CAAgB4B,MAAhB,CAAuB5B,IAAvB,CAA7D;;EAEA,UAAIyjB,SAAJ,EAAe;EAAA,oBACJ,CAACjS,MAAM,CAACsP,GAAP,CAAWziB,CAAZ,EAAemT,MAAM,CAACsP,GAAP,CAAW7vB,CAA1B,CADI;EACZoN,QAAAA,CADY;EACTpN,QAAAA,CADS;EAEd,OAFD,MAEO;EACL,YAAMyyB,EAAE,GAAG1jB,IAAI,CAACnH,MAAL,CAAY,KAAKzC,EAAjB,CAAX;EACAiI,QAAAA,CAAC,GAAGgjB,OAAO,CAAC,KAAKjrB,EAAN,EAAUstB,EAAV,CAAX;EACAhS,QAAAA,OAAO,GAAG5Z,MAAM,CAACC,KAAP,CAAasG,CAAC,CAAClP,IAAf,IAAuB,IAAIsS,OAAJ,CAAY,eAAZ,CAAvB,GAAsD,IAAhE;EACApD,QAAAA,CAAC,GAAGqT,OAAO,GAAG,IAAH,GAAUrT,CAArB;EACApN,QAAAA,CAAC,GAAGygB,OAAO,GAAG,IAAH,GAAUgS,EAArB;EACD;EACF;EAED;;;;;EAGA,SAAKC,KAAL,GAAa3jB,IAAb;EACA;;;;EAGA,SAAKvB,GAAL,GAAW+S,MAAM,CAAC/S,GAAP,IAAc2G,MAAM,CAACvH,MAAP,EAAzB;EACA;;;;EAGA,SAAK6T,OAAL,GAAeA,OAAf;EACA;;;;EAGA,SAAK2N,QAAL,GAAgB,IAAhB;EACA;;;;EAGA,SAAKhhB,CAAL,GAASA,CAAT;EACA;;;;EAGA,SAAKpN,CAAL,GAASA,CAAT;EACA;;;;EAGA,SAAK2yB,eAAL,GAAuB,IAAvB;EACD;;EAID;;;;;;;;;;;;;;;;;;;;;aAmBO1X,QAAP,eAAa/c,IAAb,EAAmBC,KAAnB,EAA0BC,GAA1B,EAA+BM,IAA/B,EAAqCC,MAArC,EAA6CE,MAA7C,EAAqD4F,WAArD,EAAkE;EAChE,QAAI1E,WAAW,CAAC7B,IAAD,CAAf,EAAuB;EACrB,aAAO,IAAI0X,QAAJ,CAAa;EAAEzQ,QAAAA,EAAE,EAAE8O,QAAQ,CAACL,GAAT;EAAN,OAAb,CAAP;EACD,KAFD,MAEO;EACL,aAAOue,OAAO,CACZ;EACEj0B,QAAAA,IAAI,EAAJA,IADF;EAEEC,QAAAA,KAAK,EAALA,KAFF;EAGEC,QAAAA,GAAG,EAAHA,GAHF;EAIEM,QAAAA,IAAI,EAAJA,IAJF;EAKEC,QAAAA,MAAM,EAANA,MALF;EAMEE,QAAAA,MAAM,EAANA,MANF;EAOE4F,QAAAA,WAAW,EAAXA;EAPF,OADY,EAUZwP,QAAQ,CAACP,WAVG,CAAd;EAYD;EACF;EAED;;;;;;;;;;;;;;;;;;;;;aAmBOmC,MAAP,aAAW3X,IAAX,EAAiBC,KAAjB,EAAwBC,GAAxB,EAA6BM,IAA7B,EAAmCC,MAAnC,EAA2CE,MAA3C,EAAmD4F,WAAnD,EAAgE;EAC9D,QAAI1E,WAAW,CAAC7B,IAAD,CAAf,EAAuB;EACrB,aAAO,IAAI0X,QAAJ,CAAa;EAClBzQ,QAAAA,EAAE,EAAE8O,QAAQ,CAACL,GAAT,EADc;EAElB7E,QAAAA,IAAI,EAAEkE,eAAe,CAACE;EAFJ,OAAb,CAAP;EAID,KALD,MAKO;EACL,aAAOgf,OAAO,CACZ;EACEj0B,QAAAA,IAAI,EAAJA,IADF;EAEEC,QAAAA,KAAK,EAALA,KAFF;EAGEC,QAAAA,GAAG,EAAHA,GAHF;EAIEM,QAAAA,IAAI,EAAJA,IAJF;EAKEC,QAAAA,MAAM,EAANA,MALF;EAMEE,QAAAA,MAAM,EAANA,MANF;EAOE4F,QAAAA,WAAW,EAAXA;EAPF,OADY,EAUZwO,eAAe,CAACE,WAVJ,CAAd;EAYD;EACF;EAED;;;;;;;;;aAOOyf,aAAP,oBAAkBrtB,IAAlB,EAAwB+P,OAAxB,EAAsC;EAAA,QAAdA,OAAc;EAAdA,MAAAA,OAAc,GAAJ,EAAI;EAAA;;EACpC,QAAMnQ,EAAE,GAAG/E,MAAM,CAACmF,IAAD,CAAN,GAAeA,IAAI,CAAC+b,OAAL,EAAf,GAAgC9N,GAA3C;;EACA,QAAI3M,MAAM,CAACC,KAAP,CAAa3B,EAAb,CAAJ,EAAsB;EACpB,aAAOyQ,QAAQ,CAAC6K,OAAT,CAAiB,eAAjB,CAAP;EACD;;EAED,QAAMoS,SAAS,GAAGpf,aAAa,CAAC6B,OAAO,CAACvG,IAAT,EAAekF,QAAQ,CAACP,WAAxB,CAA/B;;EACA,QAAI,CAACmf,SAAS,CAAC/jB,OAAf,EAAwB;EACtB,aAAO8G,QAAQ,CAAC6K,OAAT,CAAiBiP,eAAe,CAACmD,SAAD,CAAhC,CAAP;EACD;;EAED,WAAO,IAAIjd,QAAJ,CAAa;EAClBzQ,MAAAA,EAAE,EAAEA,EADc;EAElB4J,MAAAA,IAAI,EAAE8jB,SAFY;EAGlBrlB,MAAAA,GAAG,EAAE2G,MAAM,CAACqD,UAAP,CAAkBlC,OAAlB;EAHa,KAAb,CAAP;EAKD;EAED;;;;;;;;;;;;aAUOqB,aAAP,oBAAkBqF,YAAlB,EAAgC1G,OAAhC,EAA8C;EAAA,QAAdA,OAAc;EAAdA,MAAAA,OAAc,GAAJ,EAAI;EAAA;;EAC5C,QAAI,CAACrV,QAAQ,CAAC+b,YAAD,CAAb,EAA6B;EAC3B,YAAM,IAAIpe,oBAAJ,4DACqD,OAAOoe,YAD5D,oBACuFA,YADvF,CAAN;EAGD,KAJD,MAIO,IAAIA,YAAY,GAAG,CAACyT,QAAhB,IAA4BzT,YAAY,GAAGyT,QAA/C,EAAyD;EAC9D;EACA,aAAO7Z,QAAQ,CAAC6K,OAAT,CAAiB,wBAAjB,CAAP;EACD,KAHM,MAGA;EACL,aAAO,IAAI7K,QAAJ,CAAa;EAClBzQ,QAAAA,EAAE,EAAE6W,YADc;EAElBjN,QAAAA,IAAI,EAAE0E,aAAa,CAAC6B,OAAO,CAACvG,IAAT,EAAekF,QAAQ,CAACP,WAAxB,CAFD;EAGlBlG,QAAAA,GAAG,EAAE2G,MAAM,CAACqD,UAAP,CAAkBlC,OAAlB;EAHa,OAAb,CAAP;EAKD;EACF;EAED;;;;;;;;;;;;aAUOwd,cAAP,qBAAmB3oB,OAAnB,EAA4BmL,OAA5B,EAA0C;EAAA,QAAdA,OAAc;EAAdA,MAAAA,OAAc,GAAJ,EAAI;EAAA;;EACxC,QAAI,CAACrV,QAAQ,CAACkK,OAAD,CAAb,EAAwB;EACtB,YAAM,IAAIvM,oBAAJ,CAAyB,wCAAzB,CAAN;EACD,KAFD,MAEO;EACL,aAAO,IAAIgY,QAAJ,CAAa;EAClBzQ,QAAAA,EAAE,EAAEgF,OAAO,GAAG,IADI;EAElB4E,QAAAA,IAAI,EAAE0E,aAAa,CAAC6B,OAAO,CAACvG,IAAT,EAAekF,QAAQ,CAACP,WAAxB,CAFD;EAGlBlG,QAAAA,GAAG,EAAE2G,MAAM,CAACqD,UAAP,CAAkBlC,OAAlB;EAHa,OAAb,CAAP;EAKD;EACF;EAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA2BOkC,aAAP,oBAAkBxV,GAAlB,EAAuB;EACrB,QAAM6wB,SAAS,GAAGpf,aAAa,CAACzR,GAAG,CAAC+M,IAAL,EAAWkF,QAAQ,CAACP,WAApB,CAA/B;;EACA,QAAI,CAACmf,SAAS,CAAC/jB,OAAf,EAAwB;EACtB,aAAO8G,QAAQ,CAAC6K,OAAT,CAAiBiP,eAAe,CAACmD,SAAD,CAAhC,CAAP;EACD;;EAED,QAAMT,KAAK,GAAGne,QAAQ,CAACL,GAAT,EAAd;EAAA,QACEye,YAAY,GAAGQ,SAAS,CAACjrB,MAAV,CAAiBwqB,KAAjB,CADjB;EAAA,QAEE7qB,UAAU,GAAGH,eAAe,CAACpF,GAAD,EAAM2e,aAAN,EAAqB,CAC/C,MAD+C,EAE/C,QAF+C,EAG/C,gBAH+C,EAI/C,iBAJ+C,CAArB,CAF9B;EAAA,QAQEoS,eAAe,GAAG,CAAChzB,WAAW,CAACwH,UAAU,CAACiI,OAAZ,CARhC;EAAA,QASEwjB,kBAAkB,GAAG,CAACjzB,WAAW,CAACwH,UAAU,CAACrJ,IAAZ,CATnC;EAAA,QAUE+0B,gBAAgB,GAAG,CAAClzB,WAAW,CAACwH,UAAU,CAACpJ,KAAZ,CAAZ,IAAkC,CAAC4B,WAAW,CAACwH,UAAU,CAACnJ,GAAZ,CAVnE;EAAA,QAWE80B,cAAc,GAAGF,kBAAkB,IAAIC,gBAXzC;EAAA,QAYEE,eAAe,GAAG5rB,UAAU,CAAC1C,QAAX,IAAuB0C,UAAU,CAACgI,UAZtD;EAAA,QAaE/B,GAAG,GAAG2G,MAAM,CAACqD,UAAP,CAAkBxV,GAAlB,CAbR,CANqB;EAsBrB;EACA;EACA;EACA;;EAEA,QAAI,CAACkxB,cAAc,IAAIH,eAAnB,KAAuCI,eAA3C,EAA4D;EAC1D,YAAM,IAAI11B,6BAAJ,CACJ,qEADI,CAAN;EAGD;;EAED,QAAIw1B,gBAAgB,IAAIF,eAAxB,EAAyC;EACvC,YAAM,IAAIt1B,6BAAJ,CAAkC,wCAAlC,CAAN;EACD;;EAED,QAAM21B,WAAW,GAAGD,eAAe,IAAK5rB,UAAU,CAAC/I,OAAX,IAAsB,CAAC00B,cAA/D,CArCqB;;EAwCrB,QAAIppB,KAAJ;EAAA,QACEupB,aADF;EAAA,QAEEC,MAAM,GAAGlD,OAAO,CAACgC,KAAD,EAAQC,YAAR,CAFlB;;EAGA,QAAIe,WAAJ,EAAiB;EACftpB,MAAAA,KAAK,GAAG8nB,gBAAR;EACAyB,MAAAA,aAAa,GAAG3B,qBAAhB;EACA4B,MAAAA,MAAM,GAAGrF,eAAe,CAACqF,MAAD,CAAxB;EACD,KAJD,MAIO,IAAIP,eAAJ,EAAqB;EAC1BjpB,MAAAA,KAAK,GAAG+nB,mBAAR;EACAwB,MAAAA,aAAa,GAAG1B,wBAAhB;EACA2B,MAAAA,MAAM,GAAG/E,kBAAkB,CAAC+E,MAAD,CAA3B;EACD,KAJM,MAIA;EACLxpB,MAAAA,KAAK,GAAGkV,cAAR;EACAqU,MAAAA,aAAa,GAAG5B,iBAAhB;EACD,KAtDoB;;;EAyDrB,QAAI8B,UAAU,GAAG,KAAjB;;EACA,0DAAgBzpB,KAAhB,2CAAuB;EAAA,UAAZtC,CAAY;EACrB,UAAME,CAAC,GAAGH,UAAU,CAACC,CAAD,CAApB;;EACA,UAAI,CAACzH,WAAW,CAAC2H,CAAD,CAAhB,EAAqB;EACnB6rB,QAAAA,UAAU,GAAG,IAAb;EACD,OAFD,MAEO,IAAIA,UAAJ,EAAgB;EACrBhsB,QAAAA,UAAU,CAACC,CAAD,CAAV,GAAgB6rB,aAAa,CAAC7rB,CAAD,CAA7B;EACD,OAFM,MAEA;EACLD,QAAAA,UAAU,CAACC,CAAD,CAAV,GAAgB8rB,MAAM,CAAC9rB,CAAD,CAAtB;EACD;EACF,KAnEoB;;;EAsErB,QAAMgsB,kBAAkB,GAAGJ,WAAW,GAChCzE,kBAAkB,CAACpnB,UAAD,CADc,GAEhCwrB,eAAe,GACbhE,qBAAqB,CAACxnB,UAAD,CADR,GAEb0nB,uBAAuB,CAAC1nB,UAAD,CAJ/B;EAAA,QAKEkZ,OAAO,GAAG+S,kBAAkB,IAAIpE,kBAAkB,CAAC7nB,UAAD,CALpD;;EAOA,QAAIkZ,OAAJ,EAAa;EACX,aAAO7K,QAAQ,CAAC6K,OAAT,CAAiBA,OAAjB,CAAP;EACD,KA/EoB;;;EAkFf,QAAAgT,SAAS,GAAGL,WAAW,GACvBjF,eAAe,CAAC5mB,UAAD,CADQ,GAEvBwrB,eAAe,GACbtE,kBAAkB,CAAClnB,UAAD,CADL,GAEbA,UAJF;EAAA,oBAKqBopB,OAAO,CAAC8C,SAAD,EAAYpB,YAAZ,EAA0BQ,SAA1B,CAL5B;EAAA,QAKHa,OALG;EAAA,QAKMC,WALN;EAAA,QAMJ/D,IANI,GAMG,IAAIha,QAAJ,CAAa;EAClBzQ,MAAAA,EAAE,EAAEuuB,OADc;EAElB3kB,MAAAA,IAAI,EAAE8jB,SAFY;EAGlB7yB,MAAAA,CAAC,EAAE2zB,WAHe;EAIlBnmB,MAAAA,GAAG,EAAHA;EAJkB,KAAb,CANH,CAlFe;;;EAgGrB,QAAIjG,UAAU,CAAC/I,OAAX,IAAsB00B,cAAtB,IAAwClxB,GAAG,CAACxD,OAAJ,KAAgBoxB,IAAI,CAACpxB,OAAjE,EAA0E;EACxE,aAAOoX,QAAQ,CAAC6K,OAAT,CACL,oBADK,2CAEkClZ,UAAU,CAAC/I,OAF7C,uBAEsEoxB,IAAI,CAACxO,KAAL,EAFtE,CAAP;EAID;;EAED,WAAOwO,IAAP;EACD;EAED;;;;;;;;;;;;;;;;;;aAgBOhP,UAAP,iBAAeC,IAAf,EAAqBhU,IAArB,EAAgC;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAAA,wBACHoR,YAAY,CAAC4C,IAAD,CADT;EAAA,QACvBR,IADuB;EAAA,QACjB2Q,UADiB;;EAE9B,WAAOD,mBAAmB,CAAC1Q,IAAD,EAAO2Q,UAAP,EAAmBnkB,IAAnB,EAAyB,UAAzB,EAAqCgU,IAArC,CAA1B;EACD;EAED;;;;;;;;;;;;;;;;aAcO+S,cAAP,qBAAmB/S,IAAnB,EAAyBhU,IAAzB,EAAoC;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAAA,4BACPqR,gBAAgB,CAAC2C,IAAD,CADT;EAAA,QAC3BR,IAD2B;EAAA,QACrB2Q,UADqB;;EAElC,WAAOD,mBAAmB,CAAC1Q,IAAD,EAAO2Q,UAAP,EAAmBnkB,IAAnB,EAAyB,UAAzB,EAAqCgU,IAArC,CAA1B;EACD;EAED;;;;;;;;;;;;;;;;;aAeOgT,WAAP,kBAAgBhT,IAAhB,EAAsBhU,IAAtB,EAAiC;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAAA,yBACJsR,aAAa,CAAC0C,IAAD,CADT;EAAA,QACxBR,IADwB;EAAA,QAClB2Q,UADkB;;EAE/B,WAAOD,mBAAmB,CAAC1Q,IAAD,EAAO2Q,UAAP,EAAmBnkB,IAAnB,EAAyB,MAAzB,EAAiCA,IAAjC,CAA1B;EACD;EAED;;;;;;;;;;;;;;;;aAcOinB,aAAP,oBAAkBjT,IAAlB,EAAwB9T,GAAxB,EAA6BF,IAA7B,EAAwC;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACtC,QAAI9M,WAAW,CAAC8gB,IAAD,CAAX,IAAqB9gB,WAAW,CAACgN,GAAD,CAApC,EAA2C;EACzC,YAAM,IAAInP,oBAAJ,CAAyB,kDAAzB,CAAN;EACD;;EAHqC,gBAKYiP,IALZ;EAAA,6BAK9BxH,MAL8B;EAAA,QAK9BA,MAL8B,6BAKrB,IALqB;EAAA,sCAKfgP,eALe;EAAA,QAKfA,eALe,sCAKG,IALH;EAAA,QAMpC0f,WANoC,GAMtB5f,MAAM,CAAC+C,QAAP,CAAgB;EAC5B7R,MAAAA,MAAM,EAANA,MAD4B;EAE5BgP,MAAAA,eAAe,EAAfA,eAF4B;EAG5B8C,MAAAA,WAAW,EAAE;EAHe,KAAhB,CANsB;EAAA,2BAWNmW,eAAe,CAACyG,WAAD,EAAclT,IAAd,EAAoB9T,GAApB,CAXT;EAAA,QAWnCsT,IAXmC;EAAA,QAW7B2Q,UAX6B;EAAA,QAWjBvQ,OAXiB;;EAYtC,QAAIA,OAAJ,EAAa;EACX,aAAO7K,QAAQ,CAAC6K,OAAT,CAAiBA,OAAjB,CAAP;EACD,KAFD,MAEO;EACL,aAAOsQ,mBAAmB,CAAC1Q,IAAD,EAAO2Q,UAAP,EAAmBnkB,IAAnB,cAAmCE,GAAnC,EAA0C8T,IAA1C,CAA1B;EACD;EACF;EAED;;;;;aAGOmT,aAAP,oBAAkBnT,IAAlB,EAAwB9T,GAAxB,EAA6BF,IAA7B,EAAwC;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACtC,WAAO+I,QAAQ,CAACke,UAAT,CAAoBjT,IAApB,EAA0B9T,GAA1B,EAA+BF,IAA/B,CAAP;EACD;EAED;;;;;;;;;;;;;;;;;;;;;;aAoBOonB,UAAP,iBAAepT,IAAf,EAAqBhU,IAArB,EAAgC;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAAA,oBACH4R,QAAQ,CAACoC,IAAD,CADL;EAAA,QACvBR,IADuB;EAAA,QACjB2Q,UADiB;;EAE9B,WAAOD,mBAAmB,CAAC1Q,IAAD,EAAO2Q,UAAP,EAAmBnkB,IAAnB,EAAyB,KAAzB,EAAgCgU,IAAhC,CAA1B;EACD;EAED;;;;;;;;aAMOJ,UAAP,iBAAepjB,MAAf,EAAuBoT,WAAvB,EAA2C;EAAA,QAApBA,WAAoB;EAApBA,MAAAA,WAAoB,GAAN,IAAM;EAAA;;EACzC,QAAI,CAACpT,MAAL,EAAa;EACX,YAAM,IAAIO,oBAAJ,CAAyB,kDAAzB,CAAN;EACD;;EAED,QAAM6iB,OAAO,GAAGpjB,MAAM,YAAYmT,OAAlB,GAA4BnT,MAA5B,GAAqC,IAAImT,OAAJ,CAAYnT,MAAZ,EAAoBoT,WAApB,CAArD;;EAEA,QAAIwD,QAAQ,CAACD,cAAb,EAA6B;EAC3B,YAAM,IAAI5W,oBAAJ,CAAyBqjB,OAAzB,CAAN;EACD,KAFD,MAEO;EACL,aAAO,IAAI7K,QAAJ,CAAa;EAAE6K,QAAAA,OAAO,EAAPA;EAAF,OAAb,CAAP;EACD;EACF;EAED;;;;;;;aAKOyT,aAAP,oBAAkBl0B,CAAlB,EAAqB;EACnB,WAAQA,CAAC,IAAIA,CAAC,CAAC2yB,eAAR,IAA4B,KAAnC;EACD;;EAID;;;;;;;;;;;WAOA5iB,MAAA,aAAIpS,IAAJ,EAAU;EACR,WAAO,KAAKA,IAAL,CAAP;EACD;EAED;;;;;;;;EAsUA;;;;;;WAMAw2B,qBAAA,4BAAmBtnB,IAAnB,EAA8B;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAAA,gCACkBF,SAAS,CAACC,MAAV,CAC5C,KAAKY,GAAL,CAAS6K,KAAT,CAAexL,IAAf,CAD4C,EAE5CA,IAF4C,EAG5CmB,eAH4C,CAG5B,IAH4B,CADlB;EAAA,QACpB3I,MADoB,yBACpBA,MADoB;EAAA,QACZgP,eADY,yBACZA,eADY;EAAA,QACKmB,QADL,yBACKA,QADL;;EAK5B,WAAO;EAAEnQ,MAAAA,MAAM,EAANA,MAAF;EAAUgP,MAAAA,eAAe,EAAfA,eAAV;EAA2B3F,MAAAA,cAAc,EAAE8G;EAA3C,KAAP;EACD;;EAID;;;;;;;;;;WAQAuR,QAAA,eAAMnf,MAAN,EAAkBiF,IAAlB,EAA6B;EAAA,QAAvBjF,MAAuB;EAAvBA,MAAAA,MAAuB,GAAd,CAAc;EAAA;;EAAA,QAAXiF,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAC3B,WAAO,KAAKsZ,OAAL,CAAalT,eAAe,CAACC,QAAhB,CAAyBtL,MAAzB,CAAb,EAA+CiF,IAA/C,CAAP;EACD;EAED;;;;;;;;WAMAunB,UAAA,mBAAU;EACR,WAAO,KAAKjO,OAAL,CAAalS,QAAQ,CAACP,WAAtB,CAAP;EACD;EAED;;;;;;;;;;;WASAyS,UAAA,iBAAQpX,IAAR,SAAwE;EAAA,mCAAJ,EAAI;EAAA,oCAAxDiY,aAAwD;EAAA,QAAxDA,aAAwD,oCAAxC,KAAwC;EAAA,sCAAjCqN,gBAAiC;EAAA,QAAjCA,gBAAiC,sCAAd,KAAc;;EACtEtlB,IAAAA,IAAI,GAAG0E,aAAa,CAAC1E,IAAD,EAAOkF,QAAQ,CAACP,WAAhB,CAApB;;EACA,QAAI3E,IAAI,CAAC4B,MAAL,CAAY,KAAK5B,IAAjB,CAAJ,EAA4B;EAC1B,aAAO,IAAP;EACD,KAFD,MAEO,IAAI,CAACA,IAAI,CAACD,OAAV,EAAmB;EACxB,aAAO8G,QAAQ,CAAC6K,OAAT,CAAiBiP,eAAe,CAAC3gB,IAAD,CAAhC,CAAP;EACD,KAFM,MAEA;EACL,UAAIulB,KAAK,GAAG,KAAKnvB,EAAjB;;EACA,UAAI6hB,aAAa,IAAIqN,gBAArB,EAAuC;EACrC,YAAME,WAAW,GAAGxlB,IAAI,CAACnH,MAAL,CAAY,KAAKzC,EAAjB,CAApB;EACA,YAAMqvB,KAAK,GAAG,KAAKtT,QAAL,EAAd;;EAFqC,wBAG3ByP,OAAO,CAAC6D,KAAD,EAAQD,WAAR,EAAqBxlB,IAArB,CAHoB;;EAGpCulB,QAAAA,KAHoC;EAItC;;EACD,aAAOjc,OAAK,CAAC,IAAD,EAAO;EAAElT,QAAAA,EAAE,EAAEmvB,KAAN;EAAavlB,QAAAA,IAAI,EAAJA;EAAb,OAAP,CAAZ;EACD;EACF;EAED;;;;;;;;WAMAkT,cAAA,6BAA8D;EAAA,oCAAJ,EAAI;EAAA,QAAhD5c,MAAgD,SAAhDA,MAAgD;EAAA,QAAxCgP,eAAwC,SAAxCA,eAAwC;EAAA,QAAvB3F,cAAuB,SAAvBA,cAAuB;;EAC5D,QAAMlB,GAAG,GAAG,KAAKA,GAAL,CAAS6K,KAAT,CAAe;EAAEhT,MAAAA,MAAM,EAANA,MAAF;EAAUgP,MAAAA,eAAe,EAAfA,eAAV;EAA2B3F,MAAAA,cAAc,EAAdA;EAA3B,KAAf,CAAZ;EACA,WAAO2J,OAAK,CAAC,IAAD,EAAO;EAAE7K,MAAAA,GAAG,EAAHA;EAAF,KAAP,CAAZ;EACD;EAED;;;;;;;;WAMAinB,YAAA,mBAAUpvB,MAAV,EAAkB;EAChB,WAAO,KAAK4c,WAAL,CAAiB;EAAE5c,MAAAA,MAAM,EAANA;EAAF,KAAjB,CAAP;EACD;EAED;;;;;;;;;;;;WAUA0c,MAAA,aAAI1C,MAAJ,EAAY;EACV,QAAI,CAAC,KAAKvQ,OAAV,EAAmB,OAAO,IAAP;EAEnB,QAAMvH,UAAU,GAAGH,eAAe,CAACiY,MAAD,EAASsB,aAAT,EAAwB,EAAxB,CAAlC;EAAA,QACE+T,gBAAgB,GACd,CAAC30B,WAAW,CAACwH,UAAU,CAAC1C,QAAZ,CAAZ,IACA,CAAC9E,WAAW,CAACwH,UAAU,CAACgI,UAAZ,CADZ,IAEA,CAACxP,WAAW,CAACwH,UAAU,CAAC/I,OAAZ,CAJhB;EAMA,QAAIwjB,KAAJ;;EACA,QAAI0S,gBAAJ,EAAsB;EACpB1S,MAAAA,KAAK,GAAGmM,eAAe,CAAC9tB,MAAM,CAACqF,MAAP,CAAcuoB,eAAe,CAAC,KAAK7gB,CAAN,CAA7B,EAAuC7F,UAAvC,CAAD,CAAvB;EACD,KAFD,MAEO,IAAI,CAACxH,WAAW,CAACwH,UAAU,CAACiI,OAAZ,CAAhB,EAAsC;EAC3CwS,MAAAA,KAAK,GAAGyM,kBAAkB,CAACpuB,MAAM,CAACqF,MAAP,CAAc6oB,kBAAkB,CAAC,KAAKnhB,CAAN,CAAhC,EAA0C7F,UAA1C,CAAD,CAA1B;EACD,KAFM,MAEA;EACLya,MAAAA,KAAK,GAAG3hB,MAAM,CAACqF,MAAP,CAAc,KAAKwb,QAAL,EAAd,EAA+B3Z,UAA/B,CAAR,CADK;EAIL;;EACA,UAAIxH,WAAW,CAACwH,UAAU,CAACnJ,GAAZ,CAAf,EAAiC;EAC/B4jB,QAAAA,KAAK,CAAC5jB,GAAN,GAAYuE,IAAI,CAAC2mB,GAAL,CAASplB,WAAW,CAAC8d,KAAK,CAAC9jB,IAAP,EAAa8jB,KAAK,CAAC7jB,KAAnB,CAApB,EAA+C6jB,KAAK,CAAC5jB,GAArD,CAAZ;EACD;EACF;;EAtBS,oBAwBMuyB,OAAO,CAAC3O,KAAD,EAAQ,KAAKhiB,CAAb,EAAgB,KAAK+O,IAArB,CAxBb;EAAA,QAwBH5J,EAxBG;EAAA,QAwBCnF,CAxBD;;EAyBV,WAAOqY,OAAK,CAAC,IAAD,EAAO;EAAElT,MAAAA,EAAE,EAAFA,EAAF;EAAMnF,MAAAA,CAAC,EAADA;EAAN,KAAP,CAAZ;EACD;EAED;;;;;;;;;;;;;;;WAaAwhB,OAAA,cAAKC,QAAL,EAAe;EACb,QAAI,CAAC,KAAK3S,OAAV,EAAmB,OAAO,IAAP;EACnB,QAAMa,GAAG,GAAG+R,gBAAgB,CAACD,QAAD,CAA5B;EACA,WAAOpJ,OAAK,CAAC,IAAD,EAAOuY,UAAU,CAAC,IAAD,EAAOjhB,GAAP,CAAjB,CAAZ;EACD;EAED;;;;;;;;WAMAgS,QAAA,eAAMF,QAAN,EAAgB;EACd,QAAI,CAAC,KAAK3S,OAAV,EAAmB,OAAO,IAAP;EACnB,QAAMa,GAAG,GAAG+R,gBAAgB,CAACD,QAAD,CAAhB,CAA2BG,MAA3B,EAAZ;EACA,WAAOvJ,OAAK,CAAC,IAAD,EAAOuY,UAAU,CAAC,IAAD,EAAOjhB,GAAP,CAAjB,CAAZ;EACD;EAED;;;;;;;;;;;WASA+T,UAAA,iBAAQ/lB,IAAR,EAAc;EACZ,QAAI,CAAC,KAAKmR,OAAV,EAAmB,OAAO,IAAP;EACnB,QAAM9O,CAAC,GAAG,EAAV;EAAA,QACE20B,cAAc,GAAGpV,QAAQ,CAACoB,aAAT,CAAuBhjB,IAAvB,CADnB;;EAEA,YAAQg3B,cAAR;EACE,WAAK,OAAL;EACE30B,QAAAA,CAAC,CAAC7B,KAAF,GAAU,CAAV;EACF;;EACA,WAAK,UAAL;EACA,WAAK,QAAL;EACE6B,QAAAA,CAAC,CAAC5B,GAAF,GAAQ,CAAR;EACF;;EACA,WAAK,OAAL;EACA,WAAK,MAAL;EACE4B,QAAAA,CAAC,CAACtB,IAAF,GAAS,CAAT;EACF;;EACA,WAAK,OAAL;EACEsB,QAAAA,CAAC,CAACrB,MAAF,GAAW,CAAX;EACF;;EACA,WAAK,SAAL;EACEqB,QAAAA,CAAC,CAACnB,MAAF,GAAW,CAAX;EACF;;EACA,WAAK,SAAL;EACEmB,QAAAA,CAAC,CAACyE,WAAF,GAAgB,CAAhB;EACA;EAGF;EAvBF;;EA0BA,QAAIkwB,cAAc,KAAK,OAAvB,EAAgC;EAC9B30B,MAAAA,CAAC,CAACxB,OAAF,GAAY,CAAZ;EACD;;EAED,QAAIm2B,cAAc,KAAK,UAAvB,EAAmC;EACjC,UAAMrI,CAAC,GAAG3pB,IAAI,CAAC8c,IAAL,CAAU,KAAKthB,KAAL,GAAa,CAAvB,CAAV;EACA6B,MAAAA,CAAC,CAAC7B,KAAF,GAAU,CAACmuB,CAAC,GAAG,CAAL,IAAU,CAAV,GAAc,CAAxB;EACD;;EAED,WAAO,KAAKvK,GAAL,CAAS/hB,CAAT,CAAP;EACD;EAED;;;;;;;;;;;WASA40B,QAAA,eAAMj3B,IAAN,EAAY;EAAA;;EACV,WAAO,KAAKmR,OAAL,GACH,KAAK0S,IAAL,8BAAa7jB,IAAb,IAAoB,CAApB,eACG+lB,OADH,CACW/lB,IADX,EAEGgkB,KAFH,CAES,CAFT,CADG,GAIH,IAJJ;EAKD;;EAID;;;;;;;;;;;;;;;WAaAX,WAAA,kBAASjU,GAAT,EAAcF,IAAd,EAAyB;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACvB,WAAO,KAAKiC,OAAL,GACHnC,SAAS,CAACC,MAAV,CAAiB,KAAKY,GAAL,CAASgL,aAAT,CAAuB3L,IAAvB,CAAjB,EAA+CyB,wBAA/C,CAAwE,IAAxE,EAA8EvB,GAA9E,CADG,GAEH2R,SAFJ;EAGD;EAED;;;;;;;;;;;;;;;;;;;;WAkBAmW,iBAAA,wBAAehoB,IAAf,EAA0C;EAAA,QAA3BA,IAA2B;EAA3BA,MAAAA,IAA2B,GAApB7B,UAAoB;EAAA;;EACxC,WAAO,KAAK8D,OAAL,GACHnC,SAAS,CAACC,MAAV,CAAiB,KAAKY,GAAL,CAAS6K,KAAT,CAAexL,IAAf,CAAjB,EAAuCA,IAAvC,EAA6CiB,cAA7C,CAA4D,IAA5D,CADG,GAEH4Q,SAFJ;EAGD;EAED;;;;;;;;;;;;;;;WAaAoW,gBAAA,uBAAcjoB,IAAd,EAAyB;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACvB,WAAO,KAAKiC,OAAL,GACHnC,SAAS,CAACC,MAAV,CAAiB,KAAKY,GAAL,CAAS6K,KAAT,CAAexL,IAAf,CAAjB,EAAuCA,IAAvC,EAA6CkB,mBAA7C,CAAiE,IAAjE,CADG,GAEH,EAFJ;EAGD;EAED;;;;;;;;;;;;;;;WAaAqT,QAAA,eAAMvU,IAAN,EAAiB;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACf,QAAI,CAAC,KAAKiC,OAAV,EAAmB;EACjB,aAAO,IAAP;EACD;;EAED,WAAU,KAAK2W,SAAL,CAAe5Y,IAAf,CAAV,SAAkC,KAAK6Y,SAAL,CAAe7Y,IAAf,CAAlC;EACD;EAED;;;;;;;;;;WAQA4Y,YAAA,2BAAwC;EAAA,oCAAJ,EAAI;EAAA,6BAA5Btf,MAA4B;EAAA,QAA5BA,MAA4B,6BAAnB,UAAmB;;EACtC,QAAI4G,GAAG,GAAG5G,MAAM,KAAK,OAAX,GAAqB,UAArB,GAAkC,YAA5C;;EACA,QAAI,KAAKjI,IAAL,GAAY,IAAhB,EAAsB;EACpB6O,MAAAA,GAAG,GAAG,MAAMA,GAAZ;EACD;;EAED,WAAOmkB,YAAY,CAAC,IAAD,EAAOnkB,GAAP,CAAnB;EACD;EAED;;;;;;;WAKAgoB,gBAAA,yBAAgB;EACd,WAAO7D,YAAY,CAAC,IAAD,EAAO,cAAP,CAAnB;EACD;EAED;;;;;;;;;;;;;;WAYAxL,YAAA,2BAKQ;EAAA,oCAAJ,EAAI;EAAA,sCAJN2L,oBAIM;EAAA,QAJNA,oBAIM,sCAJiB,KAIjB;EAAA,sCAHND,eAGM;EAAA,QAHNA,eAGM,sCAHY,KAGZ;EAAA,oCAFNE,aAEM;EAAA,QAFNA,aAEM,oCAFU,IAEV;EAAA,6BADNnrB,MACM;EAAA,QADNA,MACM,6BADG,UACH;;EACN,WAAOgrB,gBAAgB,CAAC,IAAD,EAAO;EAC5BC,MAAAA,eAAe,EAAfA,eAD4B;EAE5BC,MAAAA,oBAAoB,EAApBA,oBAF4B;EAG5BC,MAAAA,aAAa,EAAbA,aAH4B;EAI5BnrB,MAAAA,MAAM,EAANA;EAJ4B,KAAP,CAAvB;EAMD;EAED;;;;;;;;WAMA6uB,YAAA,qBAAY;EACV,WAAO9D,YAAY,CAAC,IAAD,EAAO,+BAAP,EAAwC,KAAxC,CAAnB;EACD;EAED;;;;;;;;;;WAQA+D,SAAA,kBAAS;EACP,WAAO/D,YAAY,CAAC,KAAKnK,KAAL,EAAD,EAAe,iCAAf,CAAnB;EACD;EAED;;;;;;;WAKAmO,YAAA,qBAAY;EACV,WAAOhE,YAAY,CAAC,IAAD,EAAO,YAAP,CAAnB;EACD;EAED;;;;;;;;;;;;;WAWAiE,YAAA,2BAA8D;EAAA,oCAAJ,EAAI;EAAA,oCAAlD7D,aAAkD;EAAA,QAAlDA,aAAkD,oCAAlC,IAAkC;EAAA,kCAA5BC,WAA4B;EAAA,QAA5BA,WAA4B,kCAAd,KAAc;;EAC5D,WAAOJ,gBAAgB,CAAC,IAAD,EAAO;EAC5BG,MAAAA,aAAa,EAAbA,aAD4B;EAE5BC,MAAAA,WAAW,EAAXA,WAF4B;EAG5BC,MAAAA,SAAS,EAAE;EAHiB,KAAP,CAAvB;EAKD;EAED;;;;;;;;;;;;;WAWA4D,QAAA,eAAMvoB,IAAN,EAAiB;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACf,QAAI,CAAC,KAAKiC,OAAV,EAAmB;EACjB,aAAO,IAAP;EACD;;EAED,WAAU,KAAKomB,SAAL,EAAV,SAA8B,KAAKC,SAAL,CAAetoB,IAAf,CAA9B;EACD;EAED;;;;;;WAIAtM,WAAA,oBAAW;EACT,WAAO,KAAKuO,OAAL,GAAe,KAAKsS,KAAL,EAAf,GAA8B1C,SAArC;EACD;EAED;;;;;;WAIA4C,UAAA,mBAAU;EACR,WAAO,KAAK+T,QAAL,EAAP;EACD;EAED;;;;;;WAIAA,WAAA,oBAAW;EACT,WAAO,KAAKvmB,OAAL,GAAe,KAAK3J,EAApB,GAAyBqO,GAAhC;EACD;EAED;;;;;;WAIA8hB,YAAA,qBAAY;EACV,WAAO,KAAKxmB,OAAL,GAAe,KAAK3J,EAAL,GAAU,IAAzB,GAAgCqO,GAAvC;EACD;EAED;;;;;;WAIA6N,SAAA,kBAAS;EACP,WAAO,KAAKD,KAAL,EAAP;EACD;EAED;;;;;;WAIAmU,SAAA,kBAAS;EACP,WAAO,KAAK3e,QAAL,EAAP;EACD;EAED;;;;;;;;;WAOAsK,WAAA,kBAASrU,IAAT,EAAoB;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAClB,QAAI,CAAC,KAAKiC,OAAV,EAAmB,OAAO,EAAP;EAEnB,QAAM7G,IAAI,GAAG5H,MAAM,CAACqF,MAAP,CAAc,EAAd,EAAkB,KAAK0H,CAAvB,CAAb;;EAEA,QAAIP,IAAI,CAACsU,aAAT,EAAwB;EACtBlZ,MAAAA,IAAI,CAACyG,cAAL,GAAsB,KAAKA,cAA3B;EACAzG,MAAAA,IAAI,CAACoM,eAAL,GAAuB,KAAK7G,GAAL,CAAS6G,eAAhC;EACApM,MAAAA,IAAI,CAAC5C,MAAL,GAAc,KAAKmI,GAAL,CAASnI,MAAvB;EACD;;EACD,WAAO4C,IAAP;EACD;EAED;;;;;;WAIA2O,WAAA,oBAAW;EACT,WAAO,IAAIrS,IAAJ,CAAS,KAAKuK,OAAL,GAAe,KAAK3J,EAApB,GAAyBqO,GAAlC,CAAP;EACD;;EAID;;;;;;;;;;;;;;;;;WAeAmQ,OAAA,cAAK6R,aAAL,EAAoB73B,IAApB,EAA2CkP,IAA3C,EAAsD;EAAA,QAAlClP,IAAkC;EAAlCA,MAAAA,IAAkC,GAA3B,cAA2B;EAAA;;EAAA,QAAXkP,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACpD,QAAI,CAAC,KAAKiC,OAAN,IAAiB,CAAC0mB,aAAa,CAAC1mB,OAApC,EAA6C;EAC3C,aAAOyQ,QAAQ,CAACkB,OAAT,CACL,KAAKA,OAAL,IAAgB+U,aAAa,CAAC/U,OADzB,EAEL,wCAFK,CAAP;EAID;;EAED,QAAMgV,OAAO,GAAGp1B,MAAM,CAACqF,MAAP,CACd;EAAEL,MAAAA,MAAM,EAAE,KAAKA,MAAf;EAAuBgP,MAAAA,eAAe,EAAE,KAAKA;EAA7C,KADc,EAEdxH,IAFc,CAAhB;;EAKA,QAAM/C,KAAK,GAAG7I,UAAU,CAACtD,IAAD,CAAV,CAAiB2S,GAAjB,CAAqBiP,QAAQ,CAACoB,aAA9B,CAAd;EAAA,QACE+U,YAAY,GAAGF,aAAa,CAAClU,OAAd,KAA0B,KAAKA,OAAL,EAD3C;EAAA,QAEEsF,OAAO,GAAG8O,YAAY,GAAG,IAAH,GAAUF,aAFlC;EAAA,QAGE3O,KAAK,GAAG6O,YAAY,GAAGF,aAAH,GAAmB,IAHzC;EAAA,QAIEnvB,MAAM,GAAGsd,KAAI,CAACiD,OAAD,EAAUC,KAAV,EAAiB/c,KAAjB,EAAwB2rB,OAAxB,CAJf;;EAMA,WAAOC,YAAY,GAAGrvB,MAAM,CAACub,MAAP,EAAH,GAAqBvb,MAAxC;EACD;EAED;;;;;;;;;;WAQAsvB,UAAA,iBAAQh4B,IAAR,EAA+BkP,IAA/B,EAA0C;EAAA,QAAlClP,IAAkC;EAAlCA,MAAAA,IAAkC,GAA3B,cAA2B;EAAA;;EAAA,QAAXkP,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACxC,WAAO,KAAK8W,IAAL,CAAU/N,QAAQ,CAACqF,KAAT,EAAV,EAA4Btd,IAA5B,EAAkCkP,IAAlC,CAAP;EACD;EAED;;;;;;;WAKA+oB,QAAA,eAAMJ,aAAN,EAAqB;EACnB,WAAO,KAAK1mB,OAAL,GAAegU,QAAQ,CAACE,aAAT,CAAuB,IAAvB,EAA6BwS,aAA7B,CAAf,GAA6D,IAApE;EACD;EAED;;;;;;;;;WAOA5R,UAAA,iBAAQ4R,aAAR,EAAuB73B,IAAvB,EAA6B;EAC3B,QAAI,CAAC,KAAKmR,OAAV,EAAmB,OAAO,KAAP;;EACnB,QAAInR,IAAI,KAAK,aAAb,EAA4B;EAC1B,aAAO,KAAK2jB,OAAL,OAAmBkU,aAAa,CAAClU,OAAd,EAA1B;EACD,KAFD,MAEO;EACL,UAAMuU,OAAO,GAAGL,aAAa,CAAClU,OAAd,EAAhB;EACA,aAAO,KAAKoC,OAAL,CAAa/lB,IAAb,KAAsBk4B,OAAtB,IAAiCA,OAAO,IAAI,KAAKjB,KAAL,CAAWj3B,IAAX,CAAnD;EACD;EACF;EAED;;;;;;;;;WAOAgT,SAAA,gBAAOoI,KAAP,EAAc;EACZ,WACE,KAAKjK,OAAL,IACAiK,KAAK,CAACjK,OADN,IAEA,KAAKwS,OAAL,OAAmBvI,KAAK,CAACuI,OAAN,EAFnB,IAGA,KAAKvS,IAAL,CAAU4B,MAAV,CAAiBoI,KAAK,CAAChK,IAAvB,CAHA,IAIA,KAAKvB,GAAL,CAASmD,MAAT,CAAgBoI,KAAK,CAACvL,GAAtB,CALF;EAOD;EAED;;;;;;;;;;;;;;;;;;;;WAkBAsoB,aAAA,oBAAWxgB,OAAX,EAAyB;EAAA,QAAdA,OAAc;EAAdA,MAAAA,OAAc,GAAJ,EAAI;EAAA;;EACvB,QAAI,CAAC,KAAKxG,OAAV,EAAmB,OAAO,IAAP;EACnB,QAAM7G,IAAI,GAAGqN,OAAO,CAACrN,IAAR,IAAgB2N,QAAQ,CAAC4B,UAAT,CAAoB;EAAEzI,MAAAA,IAAI,EAAE,KAAKA;EAAb,KAApB,CAA7B;EAAA,QACEgnB,OAAO,GAAGzgB,OAAO,CAACygB,OAAR,GAAmB,OAAO9tB,IAAP,GAAc,CAACqN,OAAO,CAACygB,OAAvB,GAAiCzgB,OAAO,CAACygB,OAA5D,GAAuE,CADnF;EAEA,WAAOzD,YAAY,CACjBrqB,IADiB,EAEjB,KAAKuZ,IAAL,CAAUuU,OAAV,CAFiB,EAGjB11B,MAAM,CAACqF,MAAP,CAAc4P,OAAd,EAAuB;EACrB1L,MAAAA,OAAO,EAAE,QADY;EAErBE,MAAAA,KAAK,EAAE,CAAC,OAAD,EAAU,QAAV,EAAoB,MAApB,EAA4B,OAA5B,EAAqC,SAArC,EAAgD,SAAhD;EAFc,KAAvB,CAHiB,CAAnB;EAQD;EAED;;;;;;;;;;;;;;;WAaAksB,qBAAA,4BAAmB1gB,OAAnB,EAAiC;EAAA,QAAdA,OAAc;EAAdA,MAAAA,OAAc,GAAJ,EAAI;EAAA;;EAC/B,QAAI,CAAC,KAAKxG,OAAV,EAAmB,OAAO,IAAP;EAEnB,WAAOwjB,YAAY,CACjBhd,OAAO,CAACrN,IAAR,IAAgB2N,QAAQ,CAAC4B,UAAT,CAAoB;EAAEzI,MAAAA,IAAI,EAAE,KAAKA;EAAb,KAApB,CADC,EAEjB,IAFiB,EAGjB1O,MAAM,CAACqF,MAAP,CAAc4P,OAAd,EAAuB;EACrB1L,MAAAA,OAAO,EAAE,MADY;EAErBE,MAAAA,KAAK,EAAE,CAAC,OAAD,EAAU,QAAV,EAAoB,MAApB,CAFc;EAGrByoB,MAAAA,SAAS,EAAE;EAHU,KAAvB,CAHiB,CAAnB;EASD;EAED;;;;;;;aAKOjJ,MAAP,eAAyB;EAAA,sCAAXnF,SAAW;EAAXA,MAAAA,SAAW;EAAA;;EACvB,QAAI,CAACA,SAAS,CAAC8R,KAAV,CAAgBrgB,QAAQ,CAACse,UAAzB,CAAL,EAA2C;EACzC,YAAM,IAAIt2B,oBAAJ,CAAyB,yCAAzB,CAAN;EACD;;EACD,WAAOyD,MAAM,CAAC8iB,SAAD,EAAY,UAAAhX,CAAC;EAAA,aAAIA,CAAC,CAACmU,OAAF,EAAJ;EAAA,KAAb,EAA8B3e,IAAI,CAAC2mB,GAAnC,CAAb;EACD;EAED;;;;;;;aAKOC,MAAP,eAAyB;EAAA,uCAAXpF,SAAW;EAAXA,MAAAA,SAAW;EAAA;;EACvB,QAAI,CAACA,SAAS,CAAC8R,KAAV,CAAgBrgB,QAAQ,CAACse,UAAzB,CAAL,EAA2C;EACzC,YAAM,IAAIt2B,oBAAJ,CAAyB,yCAAzB,CAAN;EACD;;EACD,WAAOyD,MAAM,CAAC8iB,SAAD,EAAY,UAAAhX,CAAC;EAAA,aAAIA,CAAC,CAACmU,OAAF,EAAJ;EAAA,KAAb,EAA8B3e,IAAI,CAAC4mB,GAAnC,CAAb;EACD;;EAID;;;;;;;;;aAOO2M,oBAAP,2BAAyBrV,IAAzB,EAA+B9T,GAA/B,EAAoCuI,OAApC,EAAkD;EAAA,QAAdA,OAAc;EAAdA,MAAAA,OAAc,GAAJ,EAAI;EAAA;;EAAA,mBACEA,OADF;EAAA,mCACxCjQ,MADwC;EAAA,QACxCA,MADwC,gCAC/B,IAD+B;EAAA,yCACzBgP,eADyB;EAAA,QACzBA,eADyB,sCACP,IADO;EAAA,QAE9C0f,WAF8C,GAEhC5f,MAAM,CAAC+C,QAAP,CAAgB;EAC5B7R,MAAAA,MAAM,EAANA,MAD4B;EAE5BgP,MAAAA,eAAe,EAAfA,eAF4B;EAG5B8C,MAAAA,WAAW,EAAE;EAHe,KAAhB,CAFgC;EAOhD,WAAO+V,iBAAiB,CAAC6G,WAAD,EAAclT,IAAd,EAAoB9T,GAApB,CAAxB;EACD;EAED;;;;;aAGOopB,oBAAP,2BAAyBtV,IAAzB,EAA+B9T,GAA/B,EAAoCuI,OAApC,EAAkD;EAAA,QAAdA,OAAc;EAAdA,MAAAA,OAAc,GAAJ,EAAI;EAAA;;EAChD,WAAOM,QAAQ,CAACsgB,iBAAT,CAA2BrV,IAA3B,EAAiC9T,GAAjC,EAAsCuI,OAAtC,CAAP;EACD;;EAID;;;;;;;;0BArgCc;EACZ,aAAO,KAAKmL,OAAL,KAAiB,IAAxB;EACD;EAED;;;;;;;0BAIoB;EAClB,aAAO,KAAKA,OAAL,GAAe,KAAKA,OAAL,CAAapjB,MAA5B,GAAqC,IAA5C;EACD;EAED;;;;;;;0BAIyB;EACvB,aAAO,KAAKojB,OAAL,GAAe,KAAKA,OAAL,CAAahQ,WAA5B,GAA0C,IAAjD;EACD;EAED;;;;;;;;0BAKa;EACX,aAAO,KAAK3B,OAAL,GAAe,KAAKtB,GAAL,CAASnI,MAAxB,GAAiC,IAAxC;EACD;EAED;;;;;;;;0BAKsB;EACpB,aAAO,KAAKyJ,OAAL,GAAe,KAAKtB,GAAL,CAAS6G,eAAxB,GAA0C,IAAjD;EACD;EAED;;;;;;;;0BAKqB;EACnB,aAAO,KAAKvF,OAAL,GAAe,KAAKtB,GAAL,CAASkB,cAAxB,GAAyC,IAAhD;EACD;EAED;;;;;;;0BAIW;EACT,aAAO,KAAKgkB,KAAZ;EACD;EAED;;;;;;;0BAIe;EACb,aAAO,KAAK5jB,OAAL,GAAe,KAAKC,IAAL,CAAUsD,IAAzB,GAAgC,IAAvC;EACD;EAED;;;;;;;;0BAKW;EACT,aAAO,KAAKvD,OAAL,GAAe,KAAK1B,CAAL,CAAOlP,IAAtB,GAA6BsV,GAApC;EACD;EAED;;;;;;;;0BAKc;EACZ,aAAO,KAAK1E,OAAL,GAAenM,IAAI,CAAC8c,IAAL,CAAU,KAAKrS,CAAL,CAAOjP,KAAP,GAAe,CAAzB,CAAf,GAA6CqV,GAApD;EACD;EAED;;;;;;;;0BAKY;EACV,aAAO,KAAK1E,OAAL,GAAe,KAAK1B,CAAL,CAAOjP,KAAtB,GAA8BqV,GAArC;EACD;EAED;;;;;;;;0BAKU;EACR,aAAO,KAAK1E,OAAL,GAAe,KAAK1B,CAAL,CAAOhP,GAAtB,GAA4BoV,GAAnC;EACD;EAED;;;;;;;;0BAKW;EACT,aAAO,KAAK1E,OAAL,GAAe,KAAK1B,CAAL,CAAO1O,IAAtB,GAA6B8U,GAApC;EACD;EAED;;;;;;;;0BAKa;EACX,aAAO,KAAK1E,OAAL,GAAe,KAAK1B,CAAL,CAAOzO,MAAtB,GAA+B6U,GAAtC;EACD;EAED;;;;;;;;0BAKa;EACX,aAAO,KAAK1E,OAAL,GAAe,KAAK1B,CAAL,CAAOvO,MAAtB,GAA+B2U,GAAtC;EACD;EAED;;;;;;;;0BAKkB;EAChB,aAAO,KAAK1E,OAAL,GAAe,KAAK1B,CAAL,CAAO3I,WAAtB,GAAoC+O,GAA3C;EACD;EAED;;;;;;;;;0BAMe;EACb,aAAO,KAAK1E,OAAL,GAAe6gB,sBAAsB,CAAC,IAAD,CAAtB,CAA6B9qB,QAA5C,GAAuD2O,GAA9D;EACD;EAED;;;;;;;;;0BAMiB;EACf,aAAO,KAAK1E,OAAL,GAAe6gB,sBAAsB,CAAC,IAAD,CAAtB,CAA6BpgB,UAA5C,GAAyDiE,GAAhE;EACD;EAED;;;;;;;;;;0BAOc;EACZ,aAAO,KAAK1E,OAAL,GAAe6gB,sBAAsB,CAAC,IAAD,CAAtB,CAA6BnxB,OAA5C,GAAsDgV,GAA7D;EACD;EAED;;;;;;;;0BAKc;EACZ,aAAO,KAAK1E,OAAL,GAAeyf,kBAAkB,CAAC,KAAKnhB,CAAN,CAAlB,CAA2BoC,OAA1C,GAAoDgE,GAA3D;EACD;EAED;;;;;;;;;0BAMiB;EACf,aAAO,KAAK1E,OAAL,GAAekX,IAAI,CAACrd,MAAL,CAAY,OAAZ,EAAqB;EAAEtD,QAAAA,MAAM,EAAE,KAAKA;EAAf,OAArB,EAA8C,KAAKlH,KAAL,GAAa,CAA3D,CAAf,GAA+E,IAAtF;EACD;EAED;;;;;;;;;0BAMgB;EACd,aAAO,KAAK2Q,OAAL,GAAekX,IAAI,CAACrd,MAAL,CAAY,MAAZ,EAAoB;EAAEtD,QAAAA,MAAM,EAAE,KAAKA;EAAf,OAApB,EAA6C,KAAKlH,KAAL,GAAa,CAA1D,CAAf,GAA8E,IAArF;EACD;EAED;;;;;;;;;0BAMmB;EACjB,aAAO,KAAK2Q,OAAL,GAAekX,IAAI,CAACjd,QAAL,CAAc,OAAd,EAAuB;EAAE1D,QAAAA,MAAM,EAAE,KAAKA;EAAf,OAAvB,EAAgD,KAAK7G,OAAL,GAAe,CAA/D,CAAf,GAAmF,IAA1F;EACD;EAED;;;;;;;;;0BAMkB;EAChB,aAAO,KAAKsQ,OAAL,GAAekX,IAAI,CAACjd,QAAL,CAAc,MAAd,EAAsB;EAAE1D,QAAAA,MAAM,EAAE,KAAKA;EAAf,OAAtB,EAA+C,KAAK7G,OAAL,GAAe,CAA9D,CAAf,GAAkF,IAAzF;EACD;EAED;;;;;;;;;0BAMa;EACX,aAAO,KAAKsQ,OAAL,GAAe,CAAC,KAAK9O,CAArB,GAAyBwT,GAAhC;EACD;EAED;;;;;;;;0BAKsB;EACpB,UAAI,KAAK1E,OAAT,EAAkB;EAChB,eAAO,KAAKC,IAAL,CAAUM,UAAV,CAAqB,KAAKlK,EAA1B,EAA8B;EACnCgB,UAAAA,MAAM,EAAE,OAD2B;EAEnCd,UAAAA,MAAM,EAAE,KAAKA;EAFsB,SAA9B,CAAP;EAID,OALD,MAKO;EACL,eAAO,IAAP;EACD;EACF;EAED;;;;;;;;0BAKqB;EACnB,UAAI,KAAKyJ,OAAT,EAAkB;EAChB,eAAO,KAAKC,IAAL,CAAUM,UAAV,CAAqB,KAAKlK,EAA1B,EAA8B;EACnCgB,UAAAA,MAAM,EAAE,MAD2B;EAEnCd,UAAAA,MAAM,EAAE,KAAKA;EAFsB,SAA9B,CAAP;EAID,OALD,MAKO;EACL,eAAO,IAAP;EACD;EACF;EAED;;;;;;;0BAIoB;EAClB,aAAO,KAAKyJ,OAAL,GAAe,KAAKC,IAAL,CAAU2H,SAAzB,GAAqC,IAA5C;EACD;EAED;;;;;;;0BAIc;EACZ,UAAI,KAAK9H,aAAT,EAAwB;EACtB,eAAO,KAAP;EACD,OAFD,MAEO;EACL,eACE,KAAKhH,MAAL,GAAc,KAAKma,GAAL,CAAS;EAAE5jB,UAAAA,KAAK,EAAE;EAAT,SAAT,EAAuByJ,MAArC,IAA+C,KAAKA,MAAL,GAAc,KAAKma,GAAL,CAAS;EAAE5jB,UAAAA,KAAK,EAAE;EAAT,SAAT,EAAuByJ,MADtF;EAGD;EACF;EAED;;;;;;;;;0BAMmB;EACjB,aAAO5D,UAAU,CAAC,KAAK9F,IAAN,CAAjB;EACD;EAED;;;;;;;;;0BAMkB;EAChB,aAAOgG,WAAW,CAAC,KAAKhG,IAAN,EAAY,KAAKC,KAAjB,CAAlB;EACD;EAED;;;;;;;;;0BAMiB;EACf,aAAO,KAAK2Q,OAAL,GAAe7K,UAAU,CAAC,KAAK/F,IAAN,CAAzB,GAAuCsV,GAA9C;EACD;EAED;;;;;;;;;;0BAOsB;EACpB,aAAO,KAAK1E,OAAL,GAAelK,eAAe,CAAC,KAAKC,QAAN,CAA9B,GAAgD2O,GAAvD;EACD;;;0BA2sBuB;EACtB,aAAOxI,UAAP;EACD;EAED;;;;;;;0BAIsB;EACpB,aAAOA,QAAP;EACD;EAED;;;;;;;0BAIuB;EACrB,aAAOA,SAAP;EACD;EAED;;;;;;;0BAIuB;EACrB,aAAOA,SAAP;EACD;EAED;;;;;;;0BAIyB;EACvB,aAAOA,WAAP;EACD;EAED;;;;;;;0BAI+B;EAC7B,aAAOA,iBAAP;EACD;EAED;;;;;;;0BAIoC;EAClC,aAAOA,sBAAP;EACD;EAED;;;;;;;0BAImC;EACjC,aAAOA,qBAAP;EACD;EAED;;;;;;;0BAI4B;EAC1B,aAAOA,cAAP;EACD;EAED;;;;;;;0BAIkC;EAChC,aAAOA,oBAAP;EACD;EAED;;;;;;;0BAIuC;EACrC,aAAOA,yBAAP;EACD;EAED;;;;;;;0BAIsC;EACpC,aAAOA,wBAAP;EACD;EAED;;;;;;;0BAI4B;EAC1B,aAAOA,cAAP;EACD;EAED;;;;;;;0BAIyC;EACvC,aAAOA,2BAAP;EACD;EAED;;;;;;;0BAI0B;EACxB,aAAOA,YAAP;EACD;EAED;;;;;;;0BAIuC;EACrC,aAAOA,yBAAP;EACD;EAED;;;;;;;0BAIuC;EACrC,aAAOA,yBAAP;EACD;EAED;;;;;;;0BAI2B;EACzB,aAAOA,aAAP;EACD;EAED;;;;;;;0BAIwC;EACtC,aAAOA,0BAAP;EACD;EAED;;;;;;;0BAI2B;EACzB,aAAOA,aAAP;EACD;EAED;;;;;;;0BAIwC;EACtC,aAAOA,0BAAP;EACD;;;;;EAMI,SAASkY,gBAAT,CAA0BkT,WAA1B,EAAuC;EAC5C,MAAIxgB,QAAQ,CAACse,UAAT,CAAoBkC,WAApB,CAAJ,EAAsC;EACpC,WAAOA,WAAP;EACD,GAFD,MAEO,IAAIA,WAAW,IAAIA,WAAW,CAAC9U,OAA3B,IAAsCrhB,QAAQ,CAACm2B,WAAW,CAAC9U,OAAZ,EAAD,CAAlD,EAA2E;EAChF,WAAO1L,QAAQ,CAACgd,UAAT,CAAoBwD,WAApB,CAAP;EACD,GAFM,MAEA,IAAIA,WAAW,IAAI,OAAOA,WAAP,KAAuB,QAA1C,EAAoD;EACzD,WAAOxgB,QAAQ,CAAC4B,UAAT,CAAoB4e,WAApB,CAAP;EACD,GAFM,MAEA;EACL,UAAM,IAAIx4B,oBAAJ,iCAC0Bw4B,WAD1B,kBACkD,OAAOA,WADzD,CAAN;EAGD;EACF;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"luxon.js","sources":["../../src/errors.js","../../src/impl/formats.js","../../src/impl/util.js","../../src/impl/english.js","../../src/impl/formatter.js","../../src/impl/invalid.js","../../src/zone.js","../../src/zones/localZone.js","../../src/zones/IANAZone.js","../../src/zones/fixedOffsetZone.js","../../src/zones/invalidZone.js","../../src/impl/zoneUtil.js","../../src/settings.js","../../src/impl/locale.js","../../src/impl/regexParser.js","../../src/duration.js","../../src/interval.js","../../src/info.js","../../src/impl/diff.js","../../src/impl/digits.js","../../src/impl/tokenParser.js","../../src/impl/conversions.js","../../src/datetime.js"],"sourcesContent":["// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nclass LuxonError extends Error {}\n\n/**\n * @private\n */\nexport class InvalidDateTimeError extends LuxonError {\n constructor(reason) {\n super(`Invalid DateTime: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidIntervalError extends LuxonError {\n constructor(reason) {\n super(`Invalid Interval: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidDurationError extends LuxonError {\n constructor(reason) {\n super(`Invalid Duration: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class ConflictingSpecificationError extends LuxonError {}\n\n/**\n * @private\n */\nexport class InvalidUnitError extends LuxonError {\n constructor(unit) {\n super(`Invalid unit ${unit}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidArgumentError extends LuxonError {}\n\n/**\n * @private\n */\nexport class ZoneIsAbstractError extends LuxonError {\n constructor() {\n super(\"Zone is an abstract class\");\n }\n}\n","/**\n * @private\n */\n\nconst n = \"numeric\",\n s = \"short\",\n l = \"long\";\n\nexport const DATE_SHORT = {\n year: n,\n month: n,\n day: n\n};\n\nexport const DATE_MED = {\n year: n,\n month: s,\n day: n\n};\n\nexport const DATE_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s\n};\n\nexport const DATE_FULL = {\n year: n,\n month: l,\n day: n\n};\n\nexport const DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l\n};\n\nexport const TIME_SIMPLE = {\n hour: n,\n minute: n\n};\n\nexport const TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n\n};\n\nexport const TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n\nexport const TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23', always 24-hour.\n */\nexport const TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 EDT', always 24-hour.\n */\nexport const TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: s\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 Eastern Daylight Time', always 24-hour.\n */\nexport const TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: l\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s\n};\n\nexport const DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l\n};\n\nexport const DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n","/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\nimport { InvalidArgumentError } from \"../errors.js\";\n\n/**\n * @private\n */\n\n// TYPES\n\nexport function isUndefined(o) {\n return typeof o === \"undefined\";\n}\n\nexport function isNumber(o) {\n return typeof o === \"number\";\n}\n\nexport function isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\n\nexport function isString(o) {\n return typeof o === \"string\";\n}\n\nexport function isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nexport function hasIntl() {\n try {\n return typeof Intl !== \"undefined\" && Intl.DateTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\nexport function hasFormatToParts() {\n return !isUndefined(Intl.DateTimeFormat.prototype.formatToParts);\n}\n\nexport function hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nexport function maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\n\nexport function bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\n\nexport function pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\n\nexport function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n// NUMBERS AND STRINGS\n\nexport function integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nexport function floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\n\nexport function padStart(input, n = 2) {\n if (input.toString().length < n) {\n return (\"0\".repeat(n) + input).slice(-n);\n } else {\n return input.toString();\n }\n}\n\nexport function parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\n\nexport function parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\n\nexport function roundTo(number, digits, towardZero = false) {\n const factor = 10 ** digits,\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nexport function isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// covert a calendar object to a local timestamp (epoch, but with the offset baked in)\nexport function objToLocalTS(obj) {\n let d = Date.UTC(\n obj.year,\n obj.month - 1,\n obj.day,\n obj.hour,\n obj.minute,\n obj.second,\n obj.millisecond\n );\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n return +d;\n}\n\nexport function weeksInWeekYear(weekYear) {\n const p1 =\n (weekYear +\n Math.floor(weekYear / 4) -\n Math.floor(weekYear / 100) +\n Math.floor(weekYear / 400)) %\n 7,\n last = weekYear - 1,\n p2 = (last + Math.floor(last / 4) - Math.floor(last / 100) + Math.floor(last / 400)) % 7;\n return p1 === 4 || p2 === 3 ? 53 : 52;\n}\n\nexport function untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > 60 ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nexport function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hour12: false,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\"\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n const modified = Object.assign({ timeZoneName: offsetFormat }, intlOpts),\n intl = hasIntl();\n\n if (intl && hasFormatToParts()) {\n const parsed = new Intl.DateTimeFormat(locale, modified)\n .formatToParts(date)\n .find(m => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n } else if (intl) {\n // this probably doesn't work for all locales\n const without = new Intl.DateTimeFormat(locale, intlOpts).format(date),\n included = new Intl.DateTimeFormat(locale, modified).format(date),\n diffed = included.substring(without.length),\n trimmed = diffed.replace(/^[, \\u200e]+/, \"\");\n return trimmed;\n } else {\n return null;\n }\n}\n\n// signedOffset('-5', '30') -> -330\nexport function signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nexport function asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue))\n throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\n\nexport function normalizeObject(obj, normalizer, nonUnitKeys) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n if (nonUnitKeys.indexOf(u) >= 0) continue;\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\nexport function formatOffset(offset, format) {\n const hours = Math.trunc(Math.abs(offset / 60)),\n minutes = Math.trunc(Math.abs(offset % 60)),\n sign = offset >= 0 ? \"+\" : \"-\";\n\n switch (format) {\n case \"short\":\n return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return `${sign}${hours}${minutes > 0 ? `:${minutes}` : \"\"}`;\n case \"techie\":\n return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\n\nexport function timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n\nexport const ianaRegex = /[A-Za-z_+-]{1,256}(:?\\/[A-Za-z_+-]{1,256}(\\/[A-Za-z_+-]{1,256})?)?/;\n","import * as Formats from \"./formats.js\";\nimport { pick } from \"./util.js\";\n\nfunction stringify(obj) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n}\n\n/**\n * @private\n */\n\nexport const monthsLong = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\n\nexport const monthsShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n];\n\nexport const monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nexport function months(length) {\n switch (length) {\n case \"narrow\":\n return monthsNarrow;\n case \"short\":\n return monthsShort;\n case \"long\":\n return monthsLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\n\nexport const weekdaysLong = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\"\n];\n\nexport const weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nexport const weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nexport function weekdays(length) {\n switch (length) {\n case \"narrow\":\n return weekdaysNarrow;\n case \"short\":\n return weekdaysShort;\n case \"long\":\n return weekdaysLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\n\nexport const meridiems = [\"AM\", \"PM\"];\n\nexport const erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nexport const erasShort = [\"BC\", \"AD\"];\n\nexport const erasNarrow = [\"B\", \"A\"];\n\nexport function eras(length) {\n switch (length) {\n case \"narrow\":\n return erasNarrow;\n case \"short\":\n return erasShort;\n case \"long\":\n return erasLong;\n default:\n return null;\n }\n}\n\nexport function meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nexport function weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\n\nexport function monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\n\nexport function eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nexport function formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"]\n };\n\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n default: // fall through\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow\n ? singular\n ? lilUnits[1]\n : lilUnits[2] || lilUnits[1]\n : singular\n ? units[unit][0]\n : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nexport function formatString(knownFormat) {\n // these all have the offsets removed because we don't have access to them\n // without all the intl stuff this is backfilling\n const filtered = pick(knownFormat, [\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n \"hour12\"\n ]),\n key = stringify(filtered),\n dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n switch (key) {\n case stringify(Formats.DATE_SHORT):\n return \"M/d/yyyy\";\n case stringify(Formats.DATE_MED):\n return \"LLL d, yyyy\";\n case stringify(Formats.DATE_MED_WITH_WEEKDAY):\n return \"EEE, LLL d, yyyy\";\n case stringify(Formats.DATE_FULL):\n return \"LLLL d, yyyy\";\n case stringify(Formats.DATE_HUGE):\n return \"EEEE, LLLL d, yyyy\";\n case stringify(Formats.TIME_SIMPLE):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_SECONDS):\n return \"h:mm:ss a\";\n case stringify(Formats.TIME_WITH_SHORT_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_LONG_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_24_SIMPLE):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_SECONDS):\n return \"HH:mm:ss\";\n case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_LONG_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.DATETIME_SHORT):\n return \"M/d/yyyy, h:mm a\";\n case stringify(Formats.DATETIME_MED):\n return \"LLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL):\n return \"LLLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_HUGE):\n return dateTimeHuge;\n case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):\n return \"M/d/yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_SECONDS):\n return \"LLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):\n return \"EEE, d LLL yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL_WITH_SECONDS):\n return \"LLLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):\n return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n default:\n return dateTimeHuge;\n }\n}\n","import * as English from \"./english.js\";\nimport * as Formats from \"./formats.js\";\nimport { hasFormatToParts, padStart } from \"./util.js\";\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\n\nconst macroTokenToFormatOpts = {\n D: Formats.DATE_SHORT,\n DD: Formats.DATE_MED,\n DDD: Formats.DATE_FULL,\n DDDD: Formats.DATE_HUGE,\n t: Formats.TIME_SIMPLE,\n tt: Formats.TIME_WITH_SECONDS,\n ttt: Formats.TIME_WITH_SHORT_OFFSET,\n tttt: Formats.TIME_WITH_LONG_OFFSET,\n T: Formats.TIME_24_SIMPLE,\n TT: Formats.TIME_24_WITH_SECONDS,\n TTT: Formats.TIME_24_WITH_SHORT_OFFSET,\n TTTT: Formats.TIME_24_WITH_LONG_OFFSET,\n f: Formats.DATETIME_SHORT,\n ff: Formats.DATETIME_MED,\n fff: Formats.DATETIME_FULL,\n ffff: Formats.DATETIME_HUGE,\n F: Formats.DATETIME_SHORT_WITH_SECONDS,\n FF: Formats.DATETIME_MED_WITH_SECONDS,\n FFF: Formats.DATETIME_FULL_WITH_SECONDS,\n FFFF: Formats.DATETIME_HUGE_WITH_SECONDS\n};\n\n/**\n * @private\n */\n\nexport default class Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n\n static parseFormat(fmt) {\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({ literal: false, val: currentFull });\n }\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n\n return splits;\n }\n\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTime(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTimeParts(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.formatToParts();\n }\n\n resolvedOptions(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.resolvedOptions();\n }\n\n num(n, p = 0) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n const opts = Object.assign({}, this.opts);\n\n if (p > 0) {\n opts.padTo = p;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n }\n\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter =\n this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\" && hasFormatToParts(),\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = opts => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () =>\n knownEnglish\n ? English.meridiemForDateTime(dt)\n : string({ hour: \"numeric\", hour12: true }, \"dayperiod\"),\n month = (length, standalone) =>\n knownEnglish\n ? English.monthForDateTime(dt, length)\n : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n weekday = (length, standalone) =>\n knownEnglish\n ? English.weekdayForDateTime(dt, length)\n : string(\n standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n \"weekday\"\n ),\n maybeMacro = token => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = length =>\n knownEnglish ? English.eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n tokenToString = token => {\n // Where possible: http://cldr.unicode.org/translation/date-time#TOC-Stand-Alone-vs.-Format-Styles\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n case \"ZZ\":\n // like +06:00\n return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n case \"ZZZ\":\n // like +0600\n return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter\n ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter\n ? string({ month: \"2-digit\" }, \"month\")\n : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter\n ? string({ year: \"2-digit\" }, \"year\")\n : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n\n formatDurationFromString(dur, fmt) {\n const tokenToField = token => {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = lildur => token => {\n const mapped = tokenToField(token);\n if (mapped) {\n return this.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(\n (found, { literal, val }) => (literal ? found : found.concat(val)),\n []\n ),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter(t => t));\n return stringifyTokens(tokens, tokenToString(collapsed));\n }\n}\n","export default class Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n","/* eslint no-unused-vars: \"off\" */\nimport { ZoneIsAbstractError } from \"./errors.js\";\n\n/**\n * @interface\n */\nexport default class Zone {\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get type() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n get name() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n get universal() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */\n get isValid() {\n throw new ZoneIsAbstractError();\n }\n}\n","import { formatOffset, parseZoneInfo, hasIntl } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * Represents the local zone for this Javascript environment.\n * @implements {Zone}\n */\nexport default class LocalZone extends Zone {\n /**\n * Get a singleton instance of the local zone\n * @return {LocalZone}\n */\n static get instance() {\n if (singleton === null) {\n singleton = new LocalZone();\n }\n return singleton;\n }\n\n /** @override **/\n get type() {\n return \"local\";\n }\n\n /** @override **/\n get name() {\n if (hasIntl()) {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n } else return \"local\";\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"local\";\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import { formatOffset, parseZoneInfo, isUndefined, ianaRegex, objToLocalTS } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nconst matchingRegex = RegExp(`^${ianaRegex.source}$`);\n\nlet dtfCache = {};\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n });\n }\n return dtfCache[zone];\n}\n\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n};\n\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed;\n return [fYear, fMonth, fDay, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n const formatted = dtf.formatToParts(date),\n filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const { type, value } = formatted[i],\n pos = typeToPos[type];\n\n if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\n\nlet ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nexport default class IANAZone extends Zone {\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n static create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n return ianaZoneCache[name];\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Fantasia/Castle\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return !!(s && s.match(matchingRegex));\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n // Etc/GMT+8 -> -480\n /** @ignore */\n static parseGMTOffset(specifier) {\n if (specifier) {\n const match = specifier.match(/^Etc\\/GMT([+-]\\d{1,2})$/i);\n if (match) {\n return -60 * parseInt(match[1]);\n }\n }\n return null;\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /** @override **/\n get type() {\n return \"iana\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n const date = new Date(ts),\n dtf = makeDTF(this.name),\n [year, month, day, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date),\n // work around https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /** @override **/\n get isValid() {\n return this.valid;\n }\n}\n","import { formatOffset, signedOffset } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nexport default class FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /** @override **/\n get type() {\n return \"fixed\";\n }\n\n /** @override **/\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n /** @override **/\n offsetName() {\n return this.name;\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /** @override **/\n get universal() {\n return true;\n }\n\n /** @override **/\n offset() {\n return this.fixed;\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import Zone from \"../zone.js\";\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nexport default class InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n","/**\n * @private\n */\n\nimport Zone from \"../zone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport InvalidZone from \"../zones/invalidZone.js\";\n\nimport { isUndefined, isString, isNumber } from \"./util.js\";\n\nexport function normalizeZone(input, defaultZone) {\n let offset;\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"local\") return defaultZone;\n else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n else if ((offset = IANAZone.parseGMTOffset(input)) != null) {\n // handle Etc/GMT-4, which V8 chokes on\n return FixedOffsetZone.instance(offset);\n } else if (IANAZone.isValidSpecifier(lowered)) return IANAZone.create(input);\n else return FixedOffsetZone.parseSpecifier(lowered) || new InvalidZone(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && input.offset && typeof input.offset === \"number\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n","import LocalZone from \"./zones/localZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport Locale from \"./impl/locale.js\";\n\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nlet now = () => Date.now(),\n defaultZone = null, // not setting this directly to LocalZone.instance bc loading order issues\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n throwOnInvalid = false;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nexport default class Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Get the default time zone to create DateTimes in.\n * @type {string}\n */\n static get defaultZoneName() {\n return Settings.defaultZone.name;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * @type {string}\n */\n static set defaultZoneName(z) {\n if (!z) {\n defaultZone = null;\n } else {\n defaultZone = normalizeZone(z);\n }\n }\n\n /**\n * Get the default time zone object to create DateTimes in. Does not affect existing instances.\n * @type {Zone}\n */\n static get defaultZone() {\n return defaultZone || LocalZone.instance;\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n }\n}\n","import { hasFormatToParts, hasIntl, padStart, roundTo, hasRelative } from \"./util.js\";\nimport * as English from \"./english.js\";\nimport Settings from \"../settings.js\";\nimport DateTime from \"../datetime.js\";\nimport Formatter from \"./formatter.js\";\n\nlet intlDTCache = {};\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlNumCache = {};\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\n\nlet intlRelCache = {};\nfunction getCachedRTF(locString, opts = {}) {\n const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else if (hasIntl()) {\n const computedSys = new Intl.DateTimeFormat().resolvedOptions().locale;\n // node sometimes defaults to \"und\". Override that because that is dumb\n sysLocaleCache = !computedSys || computedSys === \"und\" ? \"en-US\" : computedSys;\n return sysLocaleCache;\n } else {\n sysLocaleCache = \"en-US\";\n return sysLocaleCache;\n }\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n const smaller = localeStr.substring(0, uIndex);\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n } catch (e) {\n options = getCachedDTF(smaller).resolvedOptions();\n }\n\n const { numberingSystem, calendar } = options;\n // return the smaller one so that we can append the calendar and numbering overrides to it\n return [smaller, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (hasIntl()) {\n if (outputCalendar || numberingSystem) {\n localeStr += \"-u\";\n\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n } else {\n return [];\n }\n}\n\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2016, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction listStuff(loc, length, defaultOK, englishFn, intlFn) {\n const mode = loc.listingMode(defaultOK);\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return (\n loc.numberingSystem === \"latn\" ||\n !loc.locale ||\n loc.locale.startsWith(\"en\") ||\n (hasIntl() && new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\")\n );\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n if (!forceSimple && hasIntl()) {\n const intlOpts = { useGrouping: false };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n this.hasIntl = hasIntl();\n\n let z;\n if (dt.zone.universal && this.hasIntl) {\n // Chromium doesn't support fixed-offset zones like Etc/GMT+8 in its formatter,\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=364374.\n // So we have to make do. Two cases:\n // 1. The format options tell us to show the zone. We can't do that, so the best\n // we can do is format the date in UTC.\n // 2. The format options don't tell us to show the zone. Then we can adjust them\n // the time and tell the formatter to show it to us in UTC, so that the time is right\n // and the bad zone doesn't show up.\n // We can clean all this up when Chrome fixes this.\n z = \"UTC\";\n if (opts.timeZoneName) {\n this.dt = dt;\n } else {\n this.dt = dt.offset === 0 ? dt : DateTime.fromMillis(dt.ts + dt.offset * 60 * 1000);\n }\n } else if (dt.zone.type === \"local\") {\n this.dt = dt;\n } else {\n this.dt = dt;\n z = dt.zone.name;\n }\n\n if (this.hasIntl) {\n const intlOpts = Object.assign({}, this.opts);\n if (z) {\n intlOpts.timeZone = z;\n }\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n }\n\n format() {\n if (this.hasIntl) {\n return this.dtf.format(this.dt.toJSDate());\n } else {\n const tokenFormat = English.formatString(this.opts),\n loc = Locale.create(\"en-US\");\n return Formatter.create(loc).formatDateTimeFromString(this.dt, tokenFormat);\n }\n }\n\n formatToParts() {\n if (this.hasIntl && hasFormatToParts()) {\n return this.dtf.formatToParts(this.dt.toJSDate());\n } else {\n // This is kind of a cop out. We actually could do this for English. However, we couldn't do it for intl strings\n // and IMO it's too weird to have an uncanny valley like that\n return [];\n }\n }\n\n resolvedOptions() {\n if (this.hasIntl) {\n return this.dtf.resolvedOptions();\n } else {\n return {\n locale: \"en-US\",\n numberingSystem: \"latn\",\n outputCalendar: \"gregory\"\n };\n }\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = Object.assign({ style: \"long\" }, opts);\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return English.formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\n\n/**\n * @private\n */\n\nexport default class Locale {\n static fromOpts(opts) {\n return Locale.create(opts.locale, opts.numberingSystem, opts.outputCalendar, opts.defaultToEN);\n }\n\n static create(locale, numberingSystem, outputCalendar, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale,\n // the system locale is useful for human readable strings but annoying for parsing/formatting known formats\n localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale()),\n numberingSystemR = numberingSystem || Settings.defaultNumberingSystem,\n outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n return new Locale(localeR, numberingSystemR, outputCalendarR, specifiedLocale);\n }\n\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n }\n\n static fromObject({ locale, numberingSystem, outputCalendar } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar);\n }\n\n constructor(locale, numbering, outputCalendar, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n this.weekdaysCache = { format: {}, standalone: {} };\n this.monthsCache = { format: {}, standalone: {} };\n this.meridiemCache = null;\n this.eraCache = {};\n\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n\n listingMode(defaultOK = true) {\n const intl = hasIntl(),\n hasFTP = intl && hasFormatToParts(),\n isActuallyEn = this.isEnglish(),\n hasNoWeirdness =\n (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n\n if (!hasFTP && !(isActuallyEn && hasNoWeirdness) && !defaultOK) {\n return \"error\";\n } else if (!hasFTP || (isActuallyEn && hasNoWeirdness)) {\n return \"en\";\n } else {\n return \"intl\";\n }\n }\n\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(\n alts.locale || this.specifiedLocale,\n alts.numberingSystem || this.numberingSystem,\n alts.outputCalendar || this.outputCalendar,\n alts.defaultToEN || false\n );\n }\n }\n\n redefaultToEN(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: true }));\n }\n\n redefaultToSystem(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: false }));\n }\n\n months(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.months, () => {\n const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n this.monthsCache[formatStr][length] = mapMonths(dt => this.extract(dt, intl, \"month\"));\n }\n return this.monthsCache[formatStr][length];\n });\n }\n\n weekdays(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.weekdays, () => {\n const intl = format\n ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n : { weekday: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays(dt =>\n this.extract(dt, intl, \"weekday\")\n );\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n\n meridiems(defaultOK = true) {\n return listStuff(\n this,\n undefined,\n defaultOK,\n () => English.meridiems,\n () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = { hour: \"numeric\", hour12: true };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n dt => this.extract(dt, intl, \"dayperiod\")\n );\n }\n\n return this.meridiemCache;\n }\n );\n }\n\n eras(length, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.eras, () => {\n const intl = { era: length };\n\n // This is utter bullshit. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map(dt =>\n this.extract(dt, intl, \"era\")\n );\n }\n\n return this.eraCache[length];\n });\n }\n\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find(m => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n\n isEnglish() {\n return (\n this.locale === \"en\" ||\n this.locale.toLowerCase() === \"en-us\" ||\n (hasIntl() && new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\"))\n );\n }\n\n equals(other) {\n return (\n this.locale === other.locale &&\n this.numberingSystem === other.numberingSystem &&\n this.outputCalendar === other.outputCalendar\n );\n }\n}\n","import {\n untruncateYear,\n signedOffset,\n parseInteger,\n parseMillis,\n ianaRegex,\n isUndefined\n} from \"./util.js\";\nimport * as English from \"./english.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n return m =>\n extractors\n .reduce(\n ([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [Object.assign(mergedVals, val), mergedZone || zone, next];\n },\n [{}, null, 1]\n )\n .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\n\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/,\n isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,30}))?)?)?/,\n isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${offsetRegex.source}?`),\n isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`),\n isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/,\n isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/,\n isoOrdinalRegex = /(\\d{4})-?(\\d{3})/,\n extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\"),\n extractISOOrdinalData = simpleParse(\"year\", \"ordinal\"),\n sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/, // dumbed-down version of the ISO one\n sqlTimeRegex = RegExp(\n `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n ),\n sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1)\n };\n\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n const item = {\n hour: int(match, cursor, 0),\n minute: int(match, cursor + 1, 0),\n second: int(match, cursor + 2, 0),\n millisecond: parseMillis(match[cursor + 3])\n };\n\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO duration parsing\n\nconst isoDuration = /^-?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)?)?)$/;\n\nfunction extractISODuration(match) {\n const [\n s,\n yearStr,\n monthStr,\n weekStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr,\n millisecondsStr\n ] = match;\n\n const hasNegativePrefix = s[0] === \"-\";\n\n const maybeNegate = num => (num && hasNegativePrefix ? -num : num);\n\n return [\n {\n years: maybeNegate(parseInteger(yearStr)),\n months: maybeNegate(parseInteger(monthStr)),\n weeks: maybeNegate(parseInteger(weekStr)),\n days: maybeNegate(parseInteger(dayStr)),\n hours: maybeNegate(parseInteger(hourStr)),\n minutes: maybeNegate(parseInteger(minuteStr)),\n seconds: maybeNegate(parseInteger(secondStr)),\n milliseconds: maybeNegate(parseMillis(millisecondsStr))\n }\n ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\n\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: English.monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr)\n };\n\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday =\n weekdayStr.length > 3\n ? English.weekdaysLong.indexOf(weekdayStr) + 1\n : English.weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 = /^(?:(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)))$/;\n\nfunction extractRFC2822(match) {\n const [\n ,\n weekdayStr,\n dayStr,\n monthStr,\n yearStr,\n hourStr,\n minuteStr,\n secondStr,\n obsOffset,\n milOffset,\n offHourStr,\n offMinuteStr\n ] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, \" \")\n .replace(/(\\s\\s+)/g, \" \")\n .trim();\n}\n\n// http date\n\nconst rfc1123 = /^(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$/,\n rfc850 = /^(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$/,\n ascii = /^(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})$/;\n\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n extractISOWeekData,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOOrdinalDataAndTime = combineExtractors(extractISOOrdinalData, extractISOTime);\nconst extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset);\n\n/**\n * @private\n */\n\nexport function parseISODate(s) {\n return parse(\n s,\n [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDataAndTime],\n [isoTimeCombinedRegex, extractISOTimeAndOffset]\n );\n}\n\nexport function parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nexport function parseHTTPDate(s) {\n return parse(\n s,\n [rfc1123, extractRFC1123Or850],\n [rfc850, extractRFC1123Or850],\n [ascii, extractASCII]\n );\n}\n\nexport function parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOYmdTimeOffsetAndIANAZone = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\nexport function parseSQL(s) {\n return parse(\n s,\n [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeOffsetAndIANAZone],\n [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n );\n}\n","import { InvalidArgumentError, InvalidDurationError, InvalidUnitError } from \"./errors.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Locale from \"./impl/locale.js\";\nimport { parseISODuration } from \"./impl/regexParser.js\";\nimport {\n asNumber,\n hasOwnProperty,\n isNumber,\n isUndefined,\n normalizeObject,\n roundTo\n} from \"./impl/util.js\";\nimport Settings from \"./settings.js\";\n\nconst INVALID = \"Invalid Duration\";\n\n// unit conversion constants\nconst lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000\n },\n hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n minutes: { seconds: 60, milliseconds: 60 * 1000 },\n seconds: { milliseconds: 1000 }\n },\n casualMatrix = Object.assign(\n {\n years: {\n quarters: 4,\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n seconds: 91 * 24 * 60 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n ),\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = Object.assign(\n {\n years: {\n quarters: 4,\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: (daysInYearAccurate * 24) / 4,\n minutes: (daysInYearAccurate * 24 * 60) / 4,\n seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n );\n\n// units ordered by size\nconst orderedUnits = [\n \"years\",\n \"quarters\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n];\n\nconst reverseUnits = orderedUnits.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : Object.assign({}, dur.values, alts.values || {}),\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy\n };\n return new Duration(conf);\n}\n\nfunction antiTrunc(n) {\n return n < 0 ? Math.floor(n) : Math.ceil(n);\n}\n\n// NB: mutates parameters\nfunction convert(matrix, fromMap, fromUnit, toMap, toUnit) {\n const conv = matrix[toUnit][fromUnit],\n raw = fromMap[fromUnit] / conv,\n sameSign = Math.sign(raw) === Math.sign(toMap[toUnit]),\n // ok, so this is wild, but see the matrix in the tests\n added =\n !sameSign && toMap[toUnit] !== 0 && Math.abs(raw) <= 1 ? antiTrunc(raw) : Math.trunc(raw);\n toMap[toUnit] += added;\n fromMap[fromUnit] -= added * conv;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n reverseUnits.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n convert(matrix, vals, previous, vals, current);\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime.plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration.years}, {@link Duration.months}, {@link Duration.weeks}, {@link Duration.days}, {@link Duration.hours}, {@link Duration.minutes}, {@link Duration.seconds}, {@link Duration.milliseconds} accessors.\n * * **Configuration** See {@link Duration.locale} and {@link Duration.numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration.plus}, {@link Duration.minus}, {@link Duration.normalize}, {@link Duration.set}, {@link Duration.reconfigure}, {@link Duration.shiftTo}, and {@link Duration.negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration.as}, {@link Duration.toISO}, {@link Duration.toFormat}, and {@link Duration.toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nexport default class Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = accurate ? accurateMatrix : casualMatrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject(Object.assign({ milliseconds: count }, opts));\n }\n\n /**\n * Create a Duration from a Javascript object with keys like 'years' and 'hours.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {string} [obj.locale='en-US'] - the locale to use\n * @param {string} obj.numberingSystem - the numbering system to use\n * @param {string} [obj.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromObject(obj) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\n `Duration.fromObject: argument expected to be an object, got ${\n obj === null ? \"null\" : typeof obj\n }`\n );\n }\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit, [\n \"locale\",\n \"numberingSystem\",\n \"conversionAccuracy\",\n \"zone\" // a bit of debt; it's super inconvenient internally not to be able to blindly pass this\n ]),\n loc: Locale.fromObject(obj),\n conversionAccuracy: obj.conversionAccuracy\n });\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n const obj = Object.assign(parsed, opts);\n return Duration.fromObject(obj);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({ invalid });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\"\n }[unit ? unit.toLowerCase() : unit];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return (o && o.isLuxonDuration) || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * The duration will be converted to the set of units in the format string using {@link Duration.shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = Object.assign({}, opts, {\n floor: opts.round !== false && opts.floor !== false\n });\n return this.isValid\n ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a Javascript object with this Duration's values.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.values);\n\n if (opts.includeConfig) {\n base.conversionAccuracy = this.conversionAccuracy;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n valueOf() {\n return this.as(\"milliseconds\");\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration),\n result = {};\n\n for (const k of orderedUnits) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone(this, { values: result }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit((x, u) => u === \"hour\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone(this, { values: result }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).years //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).months //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).days //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const mixed = Object.assign(this.values, normalizeObject(values, Duration.normalizeUnit, []));\n return clone(this, { values: mixed });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({ locale, numberingSystem, conversionAccuracy } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem }),\n opts = { loc };\n\n if (conversionAccuracy) {\n opts.conversionAccuracy = conversionAccuracy;\n }\n\n return clone(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map(u => Duration.normalizeUnit(u));\n\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n\n for (const k of orderedUnits) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = own - i; // we'd like to absorb these fractions in another unit\n\n // plus anything further down the chain that should be rolled up in to this\n for (const down in vals) {\n if (orderedUnits.indexOf(down) > orderedUnits.indexOf(k)) {\n convert(this.matrix, vals, down, built, k);\n }\n }\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] +=\n key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n return clone(this, { values: built }, true).normalize();\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = -this.values[k];\n }\n return clone(this, { values: negated }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n for (const u of orderedUnits) {\n if (this.values[u] !== other.values[u]) {\n return false;\n }\n }\n return true;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDuration(durationish) {\n if (isNumber(durationish)) {\n return Duration.fromMillis(durationish);\n } else if (Duration.isDuration(durationish)) {\n return durationish;\n } else if (typeof durationish === \"object\") {\n return Duration.fromObject(durationish);\n } else {\n throw new InvalidArgumentError(\n `Unknown duration argument ${durationish} of type ${typeof durationish}`\n );\n }\n}\n","import DateTime, { friendlyDateTime } from \"./datetime.js\";\nimport Duration, { friendlyDuration } from \"./duration.js\";\nimport Settings from \"./settings.js\";\nimport { InvalidArgumentError, InvalidIntervalError } from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\n \"end before start\",\n `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n );\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link fromDateTimes}, {@link after}, {@link before}, or {@link fromISO}.\n * * **Accessors** Use {@link start} and {@link end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link count}, {@link length}, {@link hasSame}, {@link contains}, {@link isAfter}, or {@link isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link set}, {@link splitAt}, {@link splitBy}, {@link divideEqually}, {@link merge}, {@link xor}, {@link union}, {@link intersection}, or {@link difference}.\n * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs}.\n * * **Output** To convert the Interval into other representations, see {@link toString}, {@link toISO}, {@link toISODate}, {@link toISOTime}, {@link toFormat}, and {@link toDuration}.\n */\nexport default class Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({ invalid });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n\n const validateError = validateStartEnd(builtStart, builtEnd);\n\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `<start>/<end>`, `<start>/<duration>`, and `<duration>/<end>` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime.fromISO} and optionally {@link Duration.fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n let start, startIsValid;\n try {\n start = DateTime.fromISO(s, opts);\n startIsValid = start.isValid;\n } catch (e) {\n startIsValid = false;\n }\n\n let end, endIsValid;\n try {\n end = DateTime.fromISO(e, opts);\n endIsValid = end.isValid;\n } catch (e) {\n endIsValid = false;\n }\n\n if (startIsValid && endIsValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (startIsValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (endIsValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return (o && o.isLuxonInterval) || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @return {number}\n */\n count(unit = \"milliseconds\") {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit),\n end = this.end.startOf(unit);\n return Math.floor(end.diff(start, unit).get(unit)) + 1;\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({ start, end } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...[DateTime]} dateTimes - the unit of time to count.\n * @return {[Interval]}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes\n .map(friendlyDateTime)\n .filter(d => this.contains(d))\n .sort(),\n results = [];\n let { s } = this,\n i = 0;\n\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {[Interval]}\n */\n splitBy(duration) {\n const dur = friendlyDuration(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n let { s } = this,\n added,\n next;\n\n const results = [];\n while (s < this.e) {\n added = s.plus(dur);\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {[Interval]}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Return whether this Interval engulfs the start and end of the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s > e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static merge(intervals) {\n const [found, final] = intervals.sort((a, b) => a.s - b.s).reduce(\n ([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n },\n [[], null]\n );\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map(i => [{ time: i.s, type: \"s\" }, { time: i.e, type: \"e\" }]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {[Interval]}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals))\n .map(i => this.intersection(i))\n .filter(i => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format string.\n * @param {string} dateFormat - the format string. This string formats the start and end time. See {@link DateTime.toFormat} for details.\n * @param {Object} opts - options\n * @param {string} [opts.separator = ' – '] - a separator to place between the start and end representations\n * @return {string}\n */\n toFormat(dateFormat, { separator = \" – \" } = {}) {\n if (!this.isValid) return INVALID;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n","import DateTime from \"./datetime.js\";\nimport Settings from \"./settings.js\";\nimport Locale from \"./impl/locale.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nimport { hasFormatToParts, hasIntl, hasRelative } from \"./impl/util.js\";\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nexport default class Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.local()\n .setZone(zone)\n .set({ month: 12 });\n\n return !zone.universal && proto.offset !== proto.set({ month: 6 }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidSpecifier(zone) && IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone.isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n * @return {[string]}\n */\n static months(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {[string]}\n */\n static monthsFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {[string]}\n */\n static weekdays(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link weekdays}\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @return {[string]}\n */\n static weekdaysFormat(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {[string]}\n */\n static meridiems({ locale = null } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {[string]}\n */\n static eras(length = \"short\", { locale = null } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, timezone support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `zones`: whether this environment supports IANA timezones\n * * `intlTokens`: whether this environment supports internationalized token-based formatting/parsing\n * * `intl`: whether this environment supports general internationalization\n * * `relative`: whether this environment supports relative time formatting\n * @example Info.features() //=> { intl: true, intlTokens: false, zones: true, relative: false }\n * @return {Object}\n */\n static features() {\n let intl = false,\n intlTokens = false,\n zones = false,\n relative = false;\n\n if (hasIntl()) {\n intl = true;\n intlTokens = hasFormatToParts();\n relative = hasRelative();\n\n try {\n zones =\n new Intl.DateTimeFormat(\"en\", { timeZone: \"America/New_York\" }).resolvedOptions()\n .timeZone === \"America/New_York\";\n } catch (e) {\n zones = false;\n }\n }\n\n return { intl, intlTokens, zones, relative };\n }\n}\n","import Duration from \"../duration.js\";\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = dt =>\n dt\n .toUTC(0, { keepLocalTime: true })\n .startOf(\"day\")\n .valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [\n [\"years\", (a, b) => b.year - a.year],\n [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n [\n \"weeks\",\n (a, b) => {\n const days = dayDiff(a, b);\n return (days - (days % 7)) / 7;\n }\n ],\n [\"days\", dayDiff]\n ];\n\n const results = {};\n let lowestOrder, highWater;\n\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n\n let delta = differ(cursor, later);\n highWater = cursor.plus({ [unit]: delta });\n\n if (highWater > later) {\n cursor = cursor.plus({ [unit]: delta - 1 });\n delta -= 1;\n } else {\n cursor = highWater;\n }\n\n results[unit] = delta;\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nexport default function(earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n const remainingMillis = later - cursor;\n\n const lowerOrderUnits = units.filter(\n u => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n );\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({ [lowestOrder]: 1 });\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n const duration = Duration.fromObject(Object.assign(results, opts));\n\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts)\n .shiftTo(...lowerOrderUnits)\n .plus(duration);\n } else {\n return duration;\n }\n}\n","const numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\"\n};\n\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881]\n};\n\n// eslint-disable-next-line\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nexport function parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\nexport function digitRegex({ numberingSystem }, append = \"\") {\n return new RegExp(`${numberingSystems[numberingSystem || \"latn\"]}${append}`);\n}\n","import { parseMillis, isUndefined, untruncateYear, signedOffset, hasOwnProperty } from \"./util.js\";\nimport Formatter from \"./formatter.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport DateTime from \"../datetime.js\";\nimport { digitRegex, parseDigits } from \"./digits.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = i => i) {\n return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nconst NBSP = String.fromCharCode(160);\nconst spaceOrNBSP = `( |${NBSP})`;\nconst spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, \"g\");\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n // make space and non breakable space characters interchangeable\n return s.replace(/\\./g, \"\\\\.?\").replace(spaceOrNBSPRegExp, spaceOrNBSP);\n}\n\nfunction stripInsensitivities(s) {\n return s\n .replace(/\\./g, \"\") // ignore dots that were made optional\n .replace(spaceOrNBSPRegExp, \" \") // interchange space and nbsp\n .toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) =>\n strings.findIndex(i => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex\n };\n }\n}\n\nfunction offset(regex, groups) {\n return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n // eslint-disable-next-line no-useless-escape\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = t => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n unitate = t => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\", false), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\", false), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true, false), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true, false), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false, false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false, false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false, false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false, false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true, false), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true, false), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n default:\n return literal(t);\n }\n };\n\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP\n };\n\n unit.token = token;\n\n return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\"\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\"\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\"\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\"\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour: {\n numeric: \"h\",\n \"2-digit\": \"hh\"\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\"\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\"\n }\n};\n\nfunction tokenForPart(part, locale, formatOpts) {\n const { type, value } = part;\n\n if (type === \"literal\") {\n return {\n literal: true,\n val: value\n };\n }\n\n const style = formatOpts[type];\n\n let val = partTypeStyleToTokenVal[type];\n if (typeof val === \"object\") {\n val = val[style];\n }\n\n if (val) {\n return {\n literal: false,\n val\n };\n }\n\n return undefined;\n}\n\nfunction buildRegex(units) {\n const re = units.map(u => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n const toField = token => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n\n let zone;\n if (!isUndefined(matches.Z)) {\n zone = new FixedOffsetZone(matches.Z);\n } else if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n } else {\n zone = null;\n }\n\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n\n return [vals, zone];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n\n return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n\n if (!formatOpts) {\n return token;\n }\n\n const formatter = Formatter.create(locale, formatOpts);\n const parts = formatter.formatDateTimeParts(getDummyDateTime());\n\n const tokens = parts.map(p => tokenForPart(p, locale, formatOpts));\n\n if (tokens.includes(undefined)) {\n return token;\n }\n\n return tokens;\n}\n\nfunction expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map(t => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nexport function explainFromTokens(locale, input, format) {\n const tokens = expandMacroTokens(Formatter.parseFormat(format), locale),\n units = tokens.map(t => unitForToken(t, locale)),\n disqualifyingUnit = units.find(t => t.invalidReason);\n\n if (disqualifyingUnit) {\n return { input, tokens, invalidReason: disqualifyingUnit.invalidReason };\n } else {\n const [regexString, handlers] = buildRegex(units),\n regex = RegExp(regexString, \"i\"),\n [rawMatches, matches] = match(input, regex, handlers),\n [result, zone] = matches ? dateTimeFromMatches(matches) : [null, null];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\n \"Can't include meridiem when specifying 24-hour format\"\n );\n }\n return { input, tokens, regex, rawMatches, matches, result, zone };\n }\n}\n\nexport function parseFromTokens(locale, input, format) {\n const { result, zone, invalidReason } = explainFromTokens(locale, input, format);\n return [result, zone, invalidReason];\n}\n","import {\n integerBetween,\n isLeapYear,\n timeObject,\n daysInYear,\n daysInMonth,\n weeksInWeekYear,\n isInteger\n} from \"./util.js\";\nimport Invalid from \"./invalid.js\";\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\n \"unit out of range\",\n `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n );\n}\n\nfunction dayOfWeek(year, month, day) {\n const js = new Date(Date.UTC(year, month - 1, day)).getUTCDay();\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex(i => i < ordinal),\n day = ordinal - table[month0];\n return { month: month0 + 1, day };\n}\n\n/**\n * @private\n */\n\nexport function gregorianToWeek(gregObj) {\n const { year, month, day } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = dayOfWeek(year, month, day);\n\n let weekNumber = Math.floor((ordinal - weekday + 10) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear);\n } else if (weekNumber > weeksInWeekYear(year)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return Object.assign({ weekYear, weekNumber, weekday }, timeObject(gregObj));\n}\n\nexport function weekToGregorian(weekData) {\n const { weekYear, weekNumber, weekday } = weekData,\n weekdayOfJan4 = dayOfWeek(weekYear, 1, 4),\n yearInDays = daysInYear(weekYear);\n\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 3,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n const { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(weekData));\n}\n\nexport function gregorianToOrdinal(gregData) {\n const { year, month, day } = gregData,\n ordinal = computeOrdinal(year, month, day);\n\n return Object.assign({ year, ordinal }, timeObject(gregData));\n}\n\nexport function ordinalToGregorian(ordinalData) {\n const { year, ordinal } = ordinalData,\n { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(ordinalData));\n}\n\nexport function hasInvalidWeekData(obj) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(obj.weekNumber, 1, weeksInWeekYear(obj.weekYear)),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.week);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\n\nexport function hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\n\nexport function hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\n\nexport function hasInvalidTimeData(obj) {\n const { hour, minute, second, millisecond } = obj;\n const validHour =\n integerBetween(hour, 0, 23) ||\n (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n","import Duration, { friendlyDuration } from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Settings from \"./settings.js\";\nimport Info from \"./info.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport {\n isUndefined,\n maybeArray,\n isDate,\n isNumber,\n bestBy,\n daysInMonth,\n daysInYear,\n isLeapYear,\n weeksInWeekYear,\n normalizeObject,\n roundTo,\n objToLocalTS\n} from \"./impl/util.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport diff from \"./impl/diff.js\";\nimport { parseRFC2822Date, parseISODate, parseHTTPDate, parseSQL } from \"./impl/regexParser.js\";\nimport { parseFromTokens, explainFromTokens } from \"./impl/tokenParser.js\";\nimport {\n gregorianToWeek,\n weekToGregorian,\n gregorianToOrdinal,\n ordinalToGregorian,\n hasInvalidGregorianData,\n hasInvalidWeekData,\n hasInvalidOrdinalData,\n hasInvalidTimeData\n} from \"./impl/conversions.js\";\nimport * as Formats from \"./impl/formats.js\";\nimport {\n InvalidArgumentError,\n ConflictingSpecificationError,\n InvalidUnitError,\n InvalidDateTimeError\n} from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid\n };\n return new DateTime(Object.assign({}, current, alts, { old: current }));\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n\n const d = new Date(ts);\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds()\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const oPre = inst.o,\n year = inst.c.year + Math.trunc(dur.years),\n month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3,\n c = Object.assign({}, inst.c, {\n year,\n month,\n day:\n Math.min(inst.c.day, daysInMonth(year, month)) +\n Math.trunc(dur.days) +\n Math.trunc(dur.weeks) * 7\n }),\n millisToAdd = Duration.fromObject({\n years: dur.years - Math.trunc(dur.years),\n quarters: dur.quarters - Math.trunc(dur.quarters),\n months: dur.months - Math.trunc(dur.months),\n weeks: dur.weeks - Math.trunc(dur.weeks),\n days: dur.days - Math.trunc(dur.days),\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n\n return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text) {\n const { setZone, zone } = opts;\n if (parsed && Object.keys(parsed).length !== 0) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(\n Object.assign(parsed, opts, {\n zone: interpretationZone,\n // setZone is a valid option in the calling methods, but not in fromObject\n setZone: undefined\n })\n );\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(\n new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n );\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid\n ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true\n }).formatDateTimeFromString(dt, format)\n : null;\n}\n\n// technical time formats (e.g. the time part of ISO 8601), take some options\n// and this commonizes their handling\nfunction toTechTimeFormat(\n dt,\n {\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset,\n includeZone = false,\n spaceZone = false,\n format = \"extended\"\n }\n) {\n let fmt = format === \"basic\" ? \"HHmm\" : \"HH:mm\";\n\n if (!suppressSeconds || dt.second !== 0 || dt.millisecond !== 0) {\n fmt += format === \"basic\" ? \"ss\" : \":ss\";\n if (!suppressMilliseconds || dt.millisecond !== 0) {\n fmt += \".SSS\";\n }\n }\n\n if ((includeZone || includeOffset) && spaceZone) {\n fmt += \" \";\n }\n\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += format === \"basic\" ? \"ZZZ\" : \"ZZ\";\n }\n\n return toTechFormat(dt, fmt);\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\n \"weekYear\",\n \"weekNumber\",\n \"weekday\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\"\n ],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\"\n }[unit.toLowerCase()];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, zone) {\n // assume we have the higher-order units\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zone.offset(tsNow),\n [ts, o] = objToTS(obj, offsetProvis, zone);\n\n return new DateTime({\n ts,\n zone,\n o\n });\n}\n\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = unit => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end\n .startOf(unit)\n .diff(start.startOf(unit), unit)\n .get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(0, opts.units[opts.units.length - 1]);\n}\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link local}, {@link utc}, and (most flexibly) {@link fromObject}. To create one from a standard string format, use {@link fromISO}, {@link fromHTTP}, and {@link fromRFC2822}. To create one from a custom string format, use {@link fromFormat}. To create one from a native JS date, use {@link fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link toObject}), use the {@link year}, {@link month},\n * {@link day}, {@link hour}, {@link minute}, {@link second}, {@link millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link weekYear}, {@link weekNumber}, and {@link weekday} accessors.\n * * **Configuration** See the {@link locale} and {@link numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link set}, {@link reconfigure}, {@link setZone}, {@link setLocale}, {@link plus}, {@link minus}, {@link endOf}, {@link startOf}, {@link toUTC}, and {@link toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link toRelative}, {@link toRelativeCalendar}, {@link toJSON}, {@link toISO}, {@link toHTTP}, {@link toObject}, {@link toRFC2822}, {@link toString}, {@link toLocaleString}, {@link toFormat}, {@link toMillis} and {@link toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nexport default class DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n\n let invalid =\n config.invalid ||\n (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n const ot = zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12) //~> 2017-03-12T00:00:00\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({ ts: Settings.now() });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n Settings.defaultZone\n );\n }\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765Z\n * @return {DateTime}\n */\n static utc(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({\n ts: Settings.now(),\n zone: FixedOffsetZone.utcInstance\n });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n FixedOffsetZone.utcInstance\n );\n }\n }\n\n /**\n * Create a DateTime from a Javascript Date object. Uses the default zone.\n * @param {Date} date - a Javascript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options)\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\n `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n );\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a Javascript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {string|Zone} [obj.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [obj.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} obj.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} obj.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @return {DateTime}\n */\n static fromObject(obj) {\n const zoneToUse = normalizeZone(obj.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zoneToUse.offset(tsNow),\n normalized = normalizeObject(obj, normalizeUnit, [\n \"zone\",\n \"locale\",\n \"outputCalendar\",\n \"numberingSystem\"\n ]),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber,\n loc = Locale.fromObject(obj);\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData\n ? hasInvalidWeekData(normalized)\n : containsOrdinal\n ? hasInvalidOrdinalData(normalized)\n : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData\n ? weekToGregorian(normalized)\n : containsOrdinal\n ? ordinalToGregorian(normalized)\n : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\n \"mismatched weekday\",\n `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n );\n }\n\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/parsing.html#table-of-tokens\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n }),\n [vals, parsedZone, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({ invalid });\n }\n }\n\n /**\n * Check if an object is a DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return (o && o.isLuxonDateTime) || false;\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.local().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.universal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return (\n this.offset > this.set({ month: 1 }).offset || this.offset > this.set({ month: 5 }).offset\n );\n }\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOpts(opts = {}) {\n const { locale, numberingSystem, calendar } = Formatter.create(\n this.loc.clone(opts),\n opts\n ).resolvedOptions(this);\n return { locale, numberingSystem, outputCalendar: calendar };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link plus}. You may wish to use {@link toLocal} and {@link toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, { ts: newTS, zone });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n return clone(this, { loc });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({ locale });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link reconfigure} and {@link setZone}.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const normalized = normalizeObject(values, normalizeUnit, []),\n settingWeekStuff =\n !isUndefined(normalized.weekYear) ||\n !isUndefined(normalized.weekNumber) ||\n !isUndefined(normalized.weekday);\n\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(Object.assign(gregorianToWeek(this.c), normalized));\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian(Object.assign(gregorianToOrdinal(this.c), normalized));\n } else {\n mixed = Object.assign(this.toObject(), normalized);\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, { ts, o });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.local().plus(123) //~> in 123 milliseconds\n * @example DateTime.local().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.local().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.local().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.local().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.local().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit) {\n if (!this.isValid) return this;\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n case \"milliseconds\":\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n o.weekday = 1;\n }\n\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'month', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit) {\n return this.isValid\n ? this.plus({ [unit]: 1 })\n .startOf(unit)\n .minus(1)\n : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options\n * @example DateTime.local().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.local().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.local().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.local().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param opts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @example DateTime.local().toLocaleString(); //=> 4/20/2017\n * @example DateTime.local().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString({ locale: 'en-gb' }); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.local().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.local().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.local().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.local().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.local().toLocaleString({ hour: '2-digit', minute: '2-digit', hour12: false }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(opts = Formats.DATE_SHORT) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTime(this)\n : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.local().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.local().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.local().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.local().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */\n toISO(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toISODate(opts)}T${this.toISOTime(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */\n toISODate({ format = \"extended\" } = {}) {\n let fmt = format === \"basic\" ? \"yyyyMMdd\" : \"yyyy-MM-dd\";\n if (this.year > 9999) {\n fmt = \"+\" + fmt;\n }\n\n return toTechFormat(this, fmt);\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n format = \"extended\"\n } = {}) {\n return toTechTimeFormat(this, {\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n format\n });\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime, always in UTC\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */\n toSQLDate() {\n return toTechFormat(this, \"yyyy-MM-dd\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.local().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.local().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.local().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({ includeOffset = true, includeZone = false } = {}) {\n return toTechTimeFormat(this, {\n includeOffset,\n includeZone,\n spaceZone: true\n });\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a Javascript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.local().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.c);\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a Javascript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\n this.invalid || otherDateTime.invalid,\n \"created by diffing an invalid DateTime\"\n );\n }\n\n const durOpts = Object.assign(\n { locale: this.locale, numberingSystem: this.numberingSystem },\n opts\n );\n\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.local(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @example DateTime.local().hasSame(otherDT, 'day'); //~> true if both the same calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit) {\n if (!this.isValid) return false;\n if (unit === \"millisecond\") {\n return this.valueOf() === otherDateTime.valueOf();\n } else {\n const inputMs = otherDateTime.valueOf();\n return this.startOf(unit) <= inputMs && inputMs <= this.endOf(unit);\n }\n }\n\n /**\n * Equality check\n * Two DateTimes are equal iff they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return (\n this.isValid &&\n other.isValid &&\n this.valueOf() === other.valueOf() &&\n this.zone.equals(other.zone) &&\n this.loc.equals(other.loc)\n );\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {boolean} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.local().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n * @example DateTime.local().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.local().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.local().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.local().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({ zone: this.zone }),\n padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n return diffRelative(\n base,\n this.plus(padding),\n Object.assign(options, {\n numeric: \"always\",\n units: [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"]\n })\n );\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.local().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.local().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n\n return diffRelative(\n options.base || DateTime.fromObject({ zone: this.zone }),\n this,\n Object.assign(options, {\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true\n })\n );\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return Formats.DATE_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return Formats.DATE_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'Fri, Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED_WITH_WEEKDAY() {\n return Formats.DATE_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return Formats.DATE_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return Formats.DATE_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return Formats.TIME_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return Formats.TIME_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return Formats.TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return Formats.TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return Formats.TIME_24_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return Formats.TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return Formats.TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return Formats.TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return Formats.DATETIME_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return Formats.DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return Formats.DATETIME_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return Formats.DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return Formats.DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return Formats.DATETIME_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return Formats.DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return Formats.DATETIME_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return Formats.DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\n `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n );\n }\n}\n"],"names":["LuxonError","Error","InvalidDateTimeError","reason","toMessage","InvalidIntervalError","InvalidDurationError","ConflictingSpecificationError","InvalidUnitError","unit","InvalidArgumentError","ZoneIsAbstractError","n","s","l","DATE_SHORT","year","month","day","DATE_MED","DATE_MED_WITH_WEEKDAY","weekday","DATE_FULL","DATE_HUGE","TIME_SIMPLE","hour","minute","TIME_WITH_SECONDS","second","TIME_WITH_SHORT_OFFSET","timeZoneName","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","hour12","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","isUndefined","o","isNumber","isInteger","isString","isDate","Object","prototype","toString","call","hasIntl","Intl","DateTimeFormat","e","hasFormatToParts","formatToParts","hasRelative","RelativeTimeFormat","maybeArray","thing","Array","isArray","bestBy","arr","by","compare","length","undefined","reduce","best","next","pair","pick","obj","keys","a","k","hasOwnProperty","prop","integerBetween","bottom","top","floorMod","x","Math","floor","padStart","input","repeat","slice","parseInteger","string","parseInt","parseMillis","fraction","f","parseFloat","roundTo","number","digits","towardZero","factor","rounder","trunc","round","isLeapYear","daysInYear","daysInMonth","modMonth","modYear","objToLocalTS","d","Date","UTC","millisecond","setUTCFullYear","getUTCFullYear","weeksInWeekYear","weekYear","p1","last","p2","untruncateYear","parseZoneInfo","ts","offsetFormat","locale","timeZone","date","intlOpts","modified","assign","intl","parsed","find","m","type","toLowerCase","value","without","format","included","diffed","substring","trimmed","replace","signedOffset","offHourStr","offMinuteStr","offHour","Number","isNaN","offMin","offMinSigned","is","asNumber","numericValue","normalizeObject","normalizer","nonUnitKeys","normalized","u","indexOf","v","formatOffset","offset","hours","abs","minutes","sign","RangeError","timeObject","ianaRegex","stringify","JSON","sort","monthsLong","monthsShort","monthsNarrow","months","weekdaysLong","weekdaysShort","weekdaysNarrow","weekdays","meridiems","erasLong","erasShort","erasNarrow","eras","meridiemForDateTime","dt","weekdayForDateTime","monthForDateTime","eraForDateTime","formatRelativeTime","count","numeric","narrow","units","years","quarters","weeks","days","seconds","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","formatString","knownFormat","filtered","key","dateTimeHuge","Formats","stringifyTokens","splits","tokenToString","token","literal","val","macroTokenToFormatOpts","D","DD","DDD","DDDD","t","tt","ttt","tttt","T","TT","TTT","TTTT","ff","fff","ffff","F","FF","FFF","FFFF","Formatter","create","opts","parseFormat","fmt","current","currentFull","bracketed","i","c","charAt","push","formatOpts","loc","systemLoc","formatWithSystemDefault","redefaultToSystem","df","dtFormatter","formatDateTime","formatDateTimeParts","resolvedOptions","num","p","forceSimple","padTo","numberFormatter","formatDateTimeFromString","knownEnglish","listingMode","useDateTimeFormatter","outputCalendar","extract","isOffsetFixed","allowZ","isValid","zone","meridiem","English","standalone","maybeMacro","era","offsetName","zoneName","weekNumber","ordinal","quarter","formatDurationFromString","dur","tokenToField","lildur","mapped","get","tokens","realTokens","found","concat","collapsed","shiftTo","map","filter","Invalid","explanation","Zone","equals","otherZone","singleton","LocalZone","getTimezoneOffset","matchingRegex","RegExp","source","dtfCache","makeDTF","typeToPos","hackyOffset","dtf","formatted","exec","fMonth","fDay","fYear","fHour","fMinute","fSecond","partsOffset","filled","pos","ianaZoneCache","IANAZone","name","resetCache","isValidSpecifier","match","isValidZone","parseGMTOffset","specifier","valid","adjustedHour","asUTC","asTS","over","FixedOffsetZone","instance","utcInstance","parseSpecifier","r","fixed","InvalidZone","NaN","normalizeZone","defaultZone","lowered","now","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","throwOnInvalid","Settings","resetCaches","Locale","z","numberingSystem","intlDTCache","getCachedDTF","locString","intlNumCache","getCachedINF","inf","NumberFormat","intlRelCache","getCachedRTF","base","cacheKeyOpts","sysLocaleCache","systemLocale","computedSys","parseLocaleString","localeStr","uIndex","options","smaller","calendar","intlConfigString","mapMonths","ms","DateTime","utc","mapWeekdays","listStuff","defaultOK","englishFn","intlFn","mode","supportsFastNumbers","startsWith","PolyNumberFormatter","useGrouping","minimumIntegerDigits","PolyDateFormatter","universal","fromMillis","toJSDate","tokenFormat","PolyRelFormatter","isEnglish","style","rtf","fromOpts","defaultToEN","specifiedLocale","localeR","numberingSystemR","outputCalendarR","fromObject","numbering","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","weekdaysCache","monthsCache","meridiemCache","eraCache","fastNumbersCached","hasFTP","isActuallyEn","hasNoWeirdness","clone","alts","getOwnPropertyNames","redefaultToEN","formatStr","field","results","matching","fastNumbers","relFormatter","other","combineRegexes","regexes","full","combineExtractors","extractors","ex","mergedVals","mergedZone","cursor","parse","patterns","regex","extractor","simpleParse","ret","offsetRegex","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","isoYmdRegex","isoWeekRegex","isoOrdinalRegex","extractISOWeekData","extractISOOrdinalData","sqlYmdRegex","sqlTimeRegex","sqlTimeExtensionRegex","int","fallback","extractISOYmd","item","extractISOTime","extractISOOffset","local","fullOffset","extractIANAZone","isoDuration","extractISODuration","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","hasNegativePrefix","maybeNegate","milliseconds","obsOffsets","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","fromStrings","weekdayStr","result","rfc2822","extractRFC2822","obsOffset","milOffset","preprocessRFC2822","trim","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDataAndTime","extractISOTimeAndOffset","parseISODate","parseRFC2822Date","parseHTTPDate","parseISODuration","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOYmdTimeOffsetAndIANAZone","extractISOTimeOffsetAndIANAZone","parseSQL","INVALID","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits","reverseUnits","reverse","clear","conf","values","conversionAccuracy","Duration","antiTrunc","ceil","convert","matrix","fromMap","fromUnit","toMap","toUnit","conv","raw","sameSign","added","normalizeValues","vals","previous","config","accurate","invalid","isLuxonDuration","normalizeUnit","fromISO","text","week","isDuration","toFormat","fmtOpts","toObject","includeConfig","toISO","toJSON","valueOf","as","plus","duration","friendlyDuration","minus","negate","mapUnits","fn","set","mixed","reconfigure","normalize","built","accumulated","lastUnit","own","ak","down","negated","durationish","validateStartEnd","start","end","Interval","isLuxonInterval","fromDateTimes","builtStart","friendlyDateTime","builtEnd","validateError","after","before","split","startIsValid","endIsValid","isInterval","toDuration","startOf","diff","hasSame","isEmpty","isAfter","dateTime","isBefore","contains","splitAt","dateTimes","sorted","splitBy","divideEqually","numberOfParts","overlaps","abutsStart","abutsEnd","engulfs","intersection","union","merge","intervals","b","sofar","final","xor","currentCount","ends","time","flattened","difference","toISODate","toISOTime","dateFormat","separator","invalidReason","mapEndpoints","mapFn","Info","hasDST","proto","setZone","isValidIANAZone","monthsFormat","weekdaysFormat","features","intlTokens","zones","relative","dayDiff","earlier","later","utcDayStart","toUTC","keepLocalTime","highOrderDiffs","differs","lowestOrder","highWater","differ","delta","remainingMillis","lowerOrderUnits","numberingSystems","arab","arabext","bali","beng","deva","fullwide","gujr","hanidec","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","latn","numberingSystemsUTF16","hanidecChars","parseDigits","str","code","charCodeAt","search","min","max","digitRegex","append","MISSING_FTP","intUnit","post","deser","NBSP","String","fromCharCode","spaceOrNBSP","spaceOrNBSPRegExp","fixListRegex","stripInsensitivities","oneOf","strings","startIndex","join","findIndex","groups","h","simple","escapeToken","unitForToken","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","unitate","partTypeStyleToTokenVal","short","long","dayperiod","dayPeriod","tokenForPart","part","buildRegex","re","handlers","matches","all","matchIndex","dateTimeFromMatches","toField","Z","q","M","G","y","S","dummyDateTimeCache","getDummyDateTime","maybeExpandMacroToken","formatter","parts","includes","expandMacroTokens","explainFromTokens","disqualifyingUnit","regexString","rawMatches","parseFromTokens","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","getUTCDay","computeOrdinal","uncomputeOrdinal","table","month0","gregorianToWeek","gregObj","weekToGregorian","weekData","weekdayOfJan4","yearInDays","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","hasInvalidWeekData","validYear","validWeek","validWeekday","hasInvalidOrdinalData","validOrdinal","hasInvalidGregorianData","validMonth","validDay","hasInvalidTimeData","validHour","validMinute","validSecond","validMillisecond","MAX_DATE","unsupportedZone","possiblyCachedWeekData","inst","old","fixOffset","localTS","tz","utcGuess","o2","o3","tsToObj","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","objToTS","adjustTime","oPre","millisToAdd","parseDataToDateTime","parsedZone","interpretationZone","toTechFormat","toTechTimeFormat","suppressSeconds","suppressMilliseconds","includeOffset","includeZone","spaceZone","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedWeekUnits","orderedOrdinalUnits","weeknumber","weeksnumber","weeknumbers","weekyear","weekyears","quickDT","tsNow","offsetProvis","diffRelative","calendary","unchanged","ot","_zone","isLuxonDateTime","fromJSDate","zoneToUse","fromSeconds","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","useWeekData","defaultValues","objNow","foundFirst","higherOrderInvalid","gregorian","tsFinal","offsetFinal","fromRFC2822","fromHTTP","fromFormat","localeToUse","fromString","fromSQL","isDateTime","resolvedLocaleOpts","toLocal","keepCalendarTime","newTS","offsetGuess","asObj","setLocale","settingWeekStuff","normalizedUnit","endOf","toLocaleString","toLocaleParts","toISOWeekDate","toRFC2822","toHTTP","toSQLDate","toSQLTime","toSQL","toMillis","toSeconds","toBSON","otherDateTime","durOpts","otherIsLater","diffNow","until","inputMs","toRelative","padding","toRelativeCalendar","every","fromFormatExplain","fromStringExplain","dateTimeish"],"mappings":"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"} \ No newline at end of file diff --git a/npm_assets/node_modules/luxon/build/cjs-browser/luxon.js b/npm_assets/node_modules/luxon/build/cjs-browser/luxon.js index 604a1ee430..538e3fa479 100644 --- a/npm_assets/node_modules/luxon/build/cjs-browser/luxon.js +++ b/npm_assets/node_modules/luxon/build/cjs-browser/luxon.js @@ -128,7 +128,7 @@ function _unsupportedIterableToArray(o, minLen) { if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } @@ -283,6 +283,12 @@ var DATE_MED = { month: s, day: n }; +var DATE_MED_WITH_WEEKDAY = { + year: n, + month: s, + day: n, + weekday: s +}; var DATE_FULL = { year: n, month: l, @@ -665,20 +671,19 @@ function normalizeObject(obj, normalizer, nonUnitKeys) { return normalized; } function formatOffset(offset, format) { - var hours = Math.trunc(offset / 60), - minutes = Math.abs(offset % 60), - sign = hours >= 0 && !Object.is(hours, -0) ? "+" : "-", - base = "" + sign + Math.abs(hours); + var hours = Math.trunc(Math.abs(offset / 60)), + minutes = Math.trunc(Math.abs(offset % 60)), + sign = offset >= 0 ? "+" : "-"; switch (format) { case "short": - return "" + sign + padStart(Math.abs(hours), 2) + ":" + padStart(minutes, 2); + return "" + sign + padStart(hours, 2) + ":" + padStart(minutes, 2); case "narrow": - return minutes > 0 ? base + ":" + minutes : base; + return "" + sign + hours + (minutes > 0 ? ":" + minutes : ""); case "techie": - return "" + sign + padStart(Math.abs(hours), 2) + padStart(minutes, 2); + return "" + sign + padStart(hours, 2) + padStart(minutes, 2); default: throw new RangeError("Value format " + format + " is out of range for property format"); @@ -831,6 +836,9 @@ function formatString(knownFormat) { case stringify(DATE_MED): return "LLL d, yyyy"; + case stringify(DATE_MED_WITH_WEEKDAY): + return "EEE, LLL d, yyyy"; + case stringify(DATE_FULL): return "LLLL d, yyyy"; @@ -2938,7 +2946,7 @@ function simpleParse() { var offsetRegex = /(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/, - isoTimeBaseRegex = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,9}))?)?)?/, + isoTimeBaseRegex = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/, isoTimeRegex = RegExp("" + isoTimeBaseRegex.source + offsetRegex.source + "?"), isoTimeExtensionRegex = RegExp("(?:T" + isoTimeRegex.source + ")?"), isoYmdRegex = /([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/, @@ -2988,7 +2996,7 @@ function extractIANAZone(match, cursor) { } // ISO duration parsing -var isoDuration = /^-?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,9})(?:[.,](-?\d{1,9}))?S)?)?)$/; +var isoDuration = /^-?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 extractISODuration(match) { var s = match[0], @@ -3176,6 +3184,7 @@ var lowOrderMatrix = { }, casualMatrix = Object.assign({ years: { + quarters: 4, months: 12, weeks: 52, days: 365, @@ -3190,6 +3199,7 @@ var lowOrderMatrix = { days: 91, hours: 91 * 24, minutes: 91 * 24 * 60, + seconds: 91 * 24 * 60 * 60, milliseconds: 91 * 24 * 60 * 60 * 1000 }, months: { @@ -3205,6 +3215,7 @@ var lowOrderMatrix = { daysInMonthAccurate = 146097.0 / 4800, accurateMatrix = Object.assign({ years: { + quarters: 4, months: 12, weeks: daysInYearAccurate / 7, days: daysInYearAccurate, @@ -3758,7 +3769,6 @@ var Duration = /*#__PURE__*/function () { accumulated = {}, vals = this.toObject(); var lastUnit; - normalizeValues(this.matrix, vals); for (var _iterator2 = _createForOfIteratorHelperLoose(orderedUnits), _step2; !(_step2 = _iterator2()).done;) { var k = _step2.value; @@ -4027,7 +4037,7 @@ function validateStartEnd(start, end) { * * **Accessors** Use {@link start} and {@link end} to get the start and end. * * **Interrogation** To analyze the Interval, use {@link count}, {@link length}, {@link hasSame}, {@link contains}, {@link isAfter}, or {@link isBefore}. * * **Transformation** To create other Intervals out of this one, use {@link set}, {@link splitAt}, {@link splitBy}, {@link divideEqually}, {@link merge}, {@link xor}, {@link union}, {@link intersection}, or {@link difference}. - * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs} + * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs}. * * **Output** To convert the Interval into other representations, see {@link toString}, {@link toISO}, {@link toISODate}, {@link toISOTime}, {@link toFormat}, and {@link toDuration}. */ @@ -4148,20 +4158,35 @@ var Interval = /*#__PURE__*/function () { e = _split[1]; if (s && e) { - var start = DateTime.fromISO(s, opts), - end = DateTime.fromISO(e, opts); + var start, startIsValid; + + try { + start = DateTime.fromISO(s, opts); + startIsValid = start.isValid; + } catch (e) { + startIsValid = false; + } + + var end, endIsValid; - if (start.isValid && end.isValid) { + try { + end = DateTime.fromISO(e, opts); + endIsValid = end.isValid; + } catch (e) { + endIsValid = false; + } + + if (startIsValid && endIsValid) { return Interval.fromDateTimes(start, end); } - if (start.isValid) { + if (startIsValid) { var dur = Duration.fromISO(e, opts); if (dur.isValid) { return Interval.after(start, dur); } - } else if (end.isValid) { + } else if (endIsValid) { var _dur = Duration.fromISO(s, opts); if (_dur.isValid) { @@ -4229,7 +4254,7 @@ var Interval = /*#__PURE__*/function () { ; _proto.hasSame = function hasSame(unit) { - return this.isValid ? this.e.minus(1).hasSame(this.s, unit) : false; + return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false; } /** * Return whether this Interval has the same start and end DateTimes. @@ -4817,7 +4842,7 @@ var Info = /*#__PURE__*/function () { /** * Return an array of standalone week names. * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat - * @param {string} [length='long'] - the length of the month representation, such as "narrow", "short", "long". + * @param {string} [length='long'] - the length of the weekday representation, such as "narrow", "short", "long". * @param {Object} opts - options * @param {string} [opts.locale] - the locale code * @param {string} [opts.numberingSystem=null] - the numbering system @@ -4847,7 +4872,7 @@ var Info = /*#__PURE__*/function () { * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that * changes the string. * See {@link weekdays} - * @param {string} [length='long'] - the length of the month representation, such as "narrow", "short", "long". + * @param {string} [length='long'] - the length of the weekday representation, such as "narrow", "short", "long". * @param {Object} opts - options * @param {string} [opts.locale=null] - the locale code * @param {string} [opts.numberingSystem=null] - the numbering system @@ -5141,13 +5166,20 @@ function intUnit(regex, post) { }; } +var NBSP = String.fromCharCode(160); +var spaceOrNBSP = "( |" + NBSP + ")"; +var spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, "g"); + function fixListRegex(s) { // make dots optional and also make them literal - return s.replace(/\./, "\\.?"); + // make space and non breakable space characters interchangeable + return s.replace(/\./g, "\\.?").replace(spaceOrNBSPRegExp, spaceOrNBSP); } function stripInsensitivities(s) { - return s.replace(/\./, "").toLowerCase(); + return s.replace(/\./g, "") // ignore dots that were made optional + .replace(spaceOrNBSPRegExp, " ") // interchange space and nbsp + .toLowerCase(); } function oneOf(strings, startIndex) { @@ -5912,24 +5944,20 @@ function objToTS(obj, offset, zone) { function adjustTime(inst, dur) { - var _dur; - - var keys = Object.keys(dur.values); - - if (keys.indexOf("milliseconds") === -1) { - keys.push("milliseconds"); - } - - dur = (_dur = dur).shiftTo.apply(_dur, keys); var oPre = inst.o, - year = inst.c.year + dur.years, - month = inst.c.month + dur.months + dur.quarters * 3, + year = inst.c.year + Math.trunc(dur.years), + month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3, c = Object.assign({}, inst.c, { year: year, month: month, - day: Math.min(inst.c.day, daysInMonth(year, month)) + dur.days + dur.weeks * 7 + day: Math.min(inst.c.day, daysInMonth(year, month)) + Math.trunc(dur.days) + Math.trunc(dur.weeks) * 7 }), millisToAdd = Duration.fromObject({ + years: dur.years - Math.trunc(dur.years), + quarters: dur.quarters - Math.trunc(dur.quarters), + months: dur.months - Math.trunc(dur.months), + weeks: dur.weeks - Math.trunc(dur.weeks), + days: dur.days - Math.trunc(dur.days), hours: dur.hours, minutes: dur.minutes, seconds: dur.seconds, @@ -8036,6 +8064,16 @@ var DateTime = /*#__PURE__*/function () { get: function get() { return DATE_MED; } + /** + * {@link toLocaleString} format like 'Fri, Oct 14, 1983' + * @type {Object} + */ + + }, { + key: "DATE_MED_WITH_WEEKDAY", + get: function get() { + return DATE_MED_WITH_WEEKDAY; + } /** * {@link toLocaleString} format like 'October 14, 1983' * @type {Object} diff --git a/npm_assets/node_modules/luxon/build/cjs-browser/luxon.js.map b/npm_assets/node_modules/luxon/build/cjs-browser/luxon.js.map index a86c081384..721c2f8f65 100644 --- a/npm_assets/node_modules/luxon/build/cjs-browser/luxon.js.map +++ b/npm_assets/node_modules/luxon/build/cjs-browser/luxon.js.map @@ -1 +1 @@ -{"version":3,"file":"luxon.js","sources":["../../src/errors.js","../../src/impl/formats.js","../../src/impl/util.js","../../src/impl/english.js","../../src/impl/formatter.js","../../src/impl/invalid.js","../../src/zone.js","../../src/zones/localZone.js","../../src/zones/IANAZone.js","../../src/zones/fixedOffsetZone.js","../../src/zones/invalidZone.js","../../src/impl/zoneUtil.js","../../src/settings.js","../../src/impl/locale.js","../../src/impl/regexParser.js","../../src/duration.js","../../src/interval.js","../../src/info.js","../../src/impl/diff.js","../../src/impl/digits.js","../../src/impl/tokenParser.js","../../src/impl/conversions.js","../../src/datetime.js"],"sourcesContent":["// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nclass LuxonError extends Error {}\n\n/**\n * @private\n */\nexport class InvalidDateTimeError extends LuxonError {\n constructor(reason) {\n super(`Invalid DateTime: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidIntervalError extends LuxonError {\n constructor(reason) {\n super(`Invalid Interval: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidDurationError extends LuxonError {\n constructor(reason) {\n super(`Invalid Duration: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class ConflictingSpecificationError extends LuxonError {}\n\n/**\n * @private\n */\nexport class InvalidUnitError extends LuxonError {\n constructor(unit) {\n super(`Invalid unit ${unit}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidArgumentError extends LuxonError {}\n\n/**\n * @private\n */\nexport class ZoneIsAbstractError extends LuxonError {\n constructor() {\n super(\"Zone is an abstract class\");\n }\n}\n","/**\n * @private\n */\n\nconst n = \"numeric\",\n s = \"short\",\n l = \"long\";\n\nexport const DATE_SHORT = {\n year: n,\n month: n,\n day: n\n};\n\nexport const DATE_MED = {\n year: n,\n month: s,\n day: n\n};\n\nexport const DATE_FULL = {\n year: n,\n month: l,\n day: n\n};\n\nexport const DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l\n};\n\nexport const TIME_SIMPLE = {\n hour: n,\n minute: n\n};\n\nexport const TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n\n};\n\nexport const TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n\nexport const TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23', always 24-hour.\n */\nexport const TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 EDT', always 24-hour.\n */\nexport const TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: s\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 Eastern Daylight Time', always 24-hour.\n */\nexport const TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: l\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s\n};\n\nexport const DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l\n};\n\nexport const DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n","/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\nimport { InvalidArgumentError } from \"../errors.js\";\n\n/**\n * @private\n */\n\n// TYPES\n\nexport function isUndefined(o) {\n return typeof o === \"undefined\";\n}\n\nexport function isNumber(o) {\n return typeof o === \"number\";\n}\n\nexport function isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\n\nexport function isString(o) {\n return typeof o === \"string\";\n}\n\nexport function isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nexport function hasIntl() {\n try {\n return typeof Intl !== \"undefined\" && Intl.DateTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\nexport function hasFormatToParts() {\n return !isUndefined(Intl.DateTimeFormat.prototype.formatToParts);\n}\n\nexport function hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nexport function maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\n\nexport function bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\n\nexport function pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\n\nexport function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n// NUMBERS AND STRINGS\n\nexport function integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nexport function floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\n\nexport function padStart(input, n = 2) {\n if (input.toString().length < n) {\n return (\"0\".repeat(n) + input).slice(-n);\n } else {\n return input.toString();\n }\n}\n\nexport function parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\n\nexport function parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\n\nexport function roundTo(number, digits, towardZero = false) {\n const factor = 10 ** digits,\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nexport function isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// covert a calendar object to a local timestamp (epoch, but with the offset baked in)\nexport function objToLocalTS(obj) {\n let d = Date.UTC(\n obj.year,\n obj.month - 1,\n obj.day,\n obj.hour,\n obj.minute,\n obj.second,\n obj.millisecond\n );\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n return +d;\n}\n\nexport function weeksInWeekYear(weekYear) {\n const p1 =\n (weekYear +\n Math.floor(weekYear / 4) -\n Math.floor(weekYear / 100) +\n Math.floor(weekYear / 400)) %\n 7,\n last = weekYear - 1,\n p2 = (last + Math.floor(last / 4) - Math.floor(last / 100) + Math.floor(last / 400)) % 7;\n return p1 === 4 || p2 === 3 ? 53 : 52;\n}\n\nexport function untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > 60 ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nexport function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hour12: false,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\"\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n const modified = Object.assign({ timeZoneName: offsetFormat }, intlOpts),\n intl = hasIntl();\n\n if (intl && hasFormatToParts()) {\n const parsed = new Intl.DateTimeFormat(locale, modified)\n .formatToParts(date)\n .find(m => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n } else if (intl) {\n // this probably doesn't work for all locales\n const without = new Intl.DateTimeFormat(locale, intlOpts).format(date),\n included = new Intl.DateTimeFormat(locale, modified).format(date),\n diffed = included.substring(without.length),\n trimmed = diffed.replace(/^[, \\u200e]+/, \"\");\n return trimmed;\n } else {\n return null;\n }\n}\n\n// signedOffset('-5', '30') -> -330\nexport function signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nexport function asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue))\n throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\n\nexport function normalizeObject(obj, normalizer, nonUnitKeys) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n if (nonUnitKeys.indexOf(u) >= 0) continue;\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\nexport function formatOffset(offset, format) {\n const hours = Math.trunc(offset / 60),\n minutes = Math.abs(offset % 60),\n sign = hours >= 0 && !Object.is(hours, -0) ? \"+\" : \"-\",\n base = `${sign}${Math.abs(hours)}`;\n\n switch (format) {\n case \"short\":\n return `${sign}${padStart(Math.abs(hours), 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return minutes > 0 ? `${base}:${minutes}` : base;\n case \"techie\":\n return `${sign}${padStart(Math.abs(hours), 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\n\nexport function timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n\nexport const ianaRegex = /[A-Za-z_+-]{1,256}(:?\\/[A-Za-z_+-]{1,256}(\\/[A-Za-z_+-]{1,256})?)?/;\n","import * as Formats from \"./formats.js\";\nimport { pick } from \"./util.js\";\n\nfunction stringify(obj) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n}\n\n/**\n * @private\n */\n\nexport const monthsLong = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\n\nexport const monthsShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n];\n\nexport const monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nexport function months(length) {\n switch (length) {\n case \"narrow\":\n return monthsNarrow;\n case \"short\":\n return monthsShort;\n case \"long\":\n return monthsLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\n\nexport const weekdaysLong = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\"\n];\n\nexport const weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nexport const weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nexport function weekdays(length) {\n switch (length) {\n case \"narrow\":\n return weekdaysNarrow;\n case \"short\":\n return weekdaysShort;\n case \"long\":\n return weekdaysLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\n\nexport const meridiems = [\"AM\", \"PM\"];\n\nexport const erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nexport const erasShort = [\"BC\", \"AD\"];\n\nexport const erasNarrow = [\"B\", \"A\"];\n\nexport function eras(length) {\n switch (length) {\n case \"narrow\":\n return erasNarrow;\n case \"short\":\n return erasShort;\n case \"long\":\n return erasLong;\n default:\n return null;\n }\n}\n\nexport function meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nexport function weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\n\nexport function monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\n\nexport function eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nexport function formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"]\n };\n\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n default: // fall through\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow\n ? singular\n ? lilUnits[1]\n : lilUnits[2] || lilUnits[1]\n : singular\n ? units[unit][0]\n : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nexport function formatString(knownFormat) {\n // these all have the offsets removed because we don't have access to them\n // without all the intl stuff this is backfilling\n const filtered = pick(knownFormat, [\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n \"hour12\"\n ]),\n key = stringify(filtered),\n dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n switch (key) {\n case stringify(Formats.DATE_SHORT):\n return \"M/d/yyyy\";\n case stringify(Formats.DATE_MED):\n return \"LLL d, yyyy\";\n case stringify(Formats.DATE_FULL):\n return \"LLLL d, yyyy\";\n case stringify(Formats.DATE_HUGE):\n return \"EEEE, LLLL d, yyyy\";\n case stringify(Formats.TIME_SIMPLE):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_SECONDS):\n return \"h:mm:ss a\";\n case stringify(Formats.TIME_WITH_SHORT_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_LONG_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_24_SIMPLE):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_SECONDS):\n return \"HH:mm:ss\";\n case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_LONG_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.DATETIME_SHORT):\n return \"M/d/yyyy, h:mm a\";\n case stringify(Formats.DATETIME_MED):\n return \"LLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL):\n return \"LLLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_HUGE):\n return dateTimeHuge;\n case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):\n return \"M/d/yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_SECONDS):\n return \"LLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):\n return \"EEE, d LLL yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL_WITH_SECONDS):\n return \"LLLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):\n return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n default:\n return dateTimeHuge;\n }\n}\n","import * as English from \"./english.js\";\nimport * as Formats from \"./formats.js\";\nimport { hasFormatToParts, padStart } from \"./util.js\";\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\n\nconst macroTokenToFormatOpts = {\n D: Formats.DATE_SHORT,\n DD: Formats.DATE_MED,\n DDD: Formats.DATE_FULL,\n DDDD: Formats.DATE_HUGE,\n t: Formats.TIME_SIMPLE,\n tt: Formats.TIME_WITH_SECONDS,\n ttt: Formats.TIME_WITH_SHORT_OFFSET,\n tttt: Formats.TIME_WITH_LONG_OFFSET,\n T: Formats.TIME_24_SIMPLE,\n TT: Formats.TIME_24_WITH_SECONDS,\n TTT: Formats.TIME_24_WITH_SHORT_OFFSET,\n TTTT: Formats.TIME_24_WITH_LONG_OFFSET,\n f: Formats.DATETIME_SHORT,\n ff: Formats.DATETIME_MED,\n fff: Formats.DATETIME_FULL,\n ffff: Formats.DATETIME_HUGE,\n F: Formats.DATETIME_SHORT_WITH_SECONDS,\n FF: Formats.DATETIME_MED_WITH_SECONDS,\n FFF: Formats.DATETIME_FULL_WITH_SECONDS,\n FFFF: Formats.DATETIME_HUGE_WITH_SECONDS\n};\n\n/**\n * @private\n */\n\nexport default class Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n\n static parseFormat(fmt) {\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({ literal: false, val: currentFull });\n }\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n\n return splits;\n }\n\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTime(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTimeParts(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.formatToParts();\n }\n\n resolvedOptions(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.resolvedOptions();\n }\n\n num(n, p = 0) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n const opts = Object.assign({}, this.opts);\n\n if (p > 0) {\n opts.padTo = p;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n }\n\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter =\n this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\" && hasFormatToParts(),\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = opts => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () =>\n knownEnglish\n ? English.meridiemForDateTime(dt)\n : string({ hour: \"numeric\", hour12: true }, \"dayperiod\"),\n month = (length, standalone) =>\n knownEnglish\n ? English.monthForDateTime(dt, length)\n : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n weekday = (length, standalone) =>\n knownEnglish\n ? English.weekdayForDateTime(dt, length)\n : string(\n standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n \"weekday\"\n ),\n maybeMacro = token => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = length =>\n knownEnglish ? English.eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n tokenToString = token => {\n // Where possible: http://cldr.unicode.org/translation/date-time#TOC-Stand-Alone-vs.-Format-Styles\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n case \"ZZ\":\n // like +06:00\n return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n case \"ZZZ\":\n // like +0600\n return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter\n ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter\n ? string({ month: \"2-digit\" }, \"month\")\n : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter\n ? string({ year: \"2-digit\" }, \"year\")\n : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n\n formatDurationFromString(dur, fmt) {\n const tokenToField = token => {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = lildur => token => {\n const mapped = tokenToField(token);\n if (mapped) {\n return this.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(\n (found, { literal, val }) => (literal ? found : found.concat(val)),\n []\n ),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter(t => t));\n return stringifyTokens(tokens, tokenToString(collapsed));\n }\n}\n","export default class Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n","/* eslint no-unused-vars: \"off\" */\nimport { ZoneIsAbstractError } from \"./errors.js\";\n\n/**\n * @interface\n */\nexport default class Zone {\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get type() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n get name() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n get universal() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */\n get isValid() {\n throw new ZoneIsAbstractError();\n }\n}\n","import { formatOffset, parseZoneInfo, hasIntl } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * Represents the local zone for this Javascript environment.\n * @implements {Zone}\n */\nexport default class LocalZone extends Zone {\n /**\n * Get a singleton instance of the local zone\n * @return {LocalZone}\n */\n static get instance() {\n if (singleton === null) {\n singleton = new LocalZone();\n }\n return singleton;\n }\n\n /** @override **/\n get type() {\n return \"local\";\n }\n\n /** @override **/\n get name() {\n if (hasIntl()) {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n } else return \"local\";\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"local\";\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import { formatOffset, parseZoneInfo, isUndefined, ianaRegex, objToLocalTS } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nconst matchingRegex = RegExp(`^${ianaRegex.source}$`);\n\nlet dtfCache = {};\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n });\n }\n return dtfCache[zone];\n}\n\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n};\n\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed;\n return [fYear, fMonth, fDay, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n const formatted = dtf.formatToParts(date),\n filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const { type, value } = formatted[i],\n pos = typeToPos[type];\n\n if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\n\nlet ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nexport default class IANAZone extends Zone {\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n static create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n return ianaZoneCache[name];\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Fantasia/Castle\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return !!(s && s.match(matchingRegex));\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n // Etc/GMT+8 -> -480\n /** @ignore */\n static parseGMTOffset(specifier) {\n if (specifier) {\n const match = specifier.match(/^Etc\\/GMT([+-]\\d{1,2})$/i);\n if (match) {\n return -60 * parseInt(match[1]);\n }\n }\n return null;\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /** @override **/\n get type() {\n return \"iana\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n const date = new Date(ts),\n dtf = makeDTF(this.name),\n [year, month, day, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date),\n // work around https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /** @override **/\n get isValid() {\n return this.valid;\n }\n}\n","import { formatOffset, signedOffset } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nexport default class FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /** @override **/\n get type() {\n return \"fixed\";\n }\n\n /** @override **/\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n /** @override **/\n offsetName() {\n return this.name;\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /** @override **/\n get universal() {\n return true;\n }\n\n /** @override **/\n offset() {\n return this.fixed;\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import Zone from \"../zone.js\";\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nexport default class InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n","/**\n * @private\n */\n\nimport Zone from \"../zone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport InvalidZone from \"../zones/invalidZone.js\";\n\nimport { isUndefined, isString, isNumber } from \"./util.js\";\n\nexport function normalizeZone(input, defaultZone) {\n let offset;\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"local\") return defaultZone;\n else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n else if ((offset = IANAZone.parseGMTOffset(input)) != null) {\n // handle Etc/GMT-4, which V8 chokes on\n return FixedOffsetZone.instance(offset);\n } else if (IANAZone.isValidSpecifier(lowered)) return IANAZone.create(input);\n else return FixedOffsetZone.parseSpecifier(lowered) || new InvalidZone(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && input.offset && typeof input.offset === \"number\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n","import LocalZone from \"./zones/localZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport Locale from \"./impl/locale.js\";\n\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nlet now = () => Date.now(),\n defaultZone = null, // not setting this directly to LocalZone.instance bc loading order issues\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n throwOnInvalid = false;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nexport default class Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Get the default time zone to create DateTimes in.\n * @type {string}\n */\n static get defaultZoneName() {\n return Settings.defaultZone.name;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * @type {string}\n */\n static set defaultZoneName(z) {\n if (!z) {\n defaultZone = null;\n } else {\n defaultZone = normalizeZone(z);\n }\n }\n\n /**\n * Get the default time zone object to create DateTimes in. Does not affect existing instances.\n * @type {Zone}\n */\n static get defaultZone() {\n return defaultZone || LocalZone.instance;\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n }\n}\n","import { hasFormatToParts, hasIntl, padStart, roundTo, hasRelative } from \"./util.js\";\nimport * as English from \"./english.js\";\nimport Settings from \"../settings.js\";\nimport DateTime from \"../datetime.js\";\nimport Formatter from \"./formatter.js\";\n\nlet intlDTCache = {};\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlNumCache = {};\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\n\nlet intlRelCache = {};\nfunction getCachedRTF(locString, opts = {}) {\n const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else if (hasIntl()) {\n const computedSys = new Intl.DateTimeFormat().resolvedOptions().locale;\n // node sometimes defaults to \"und\". Override that because that is dumb\n sysLocaleCache = !computedSys || computedSys === \"und\" ? \"en-US\" : computedSys;\n return sysLocaleCache;\n } else {\n sysLocaleCache = \"en-US\";\n return sysLocaleCache;\n }\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n const smaller = localeStr.substring(0, uIndex);\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n } catch (e) {\n options = getCachedDTF(smaller).resolvedOptions();\n }\n\n const { numberingSystem, calendar } = options;\n // return the smaller one so that we can append the calendar and numbering overrides to it\n return [smaller, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (hasIntl()) {\n if (outputCalendar || numberingSystem) {\n localeStr += \"-u\";\n\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n } else {\n return [];\n }\n}\n\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2016, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction listStuff(loc, length, defaultOK, englishFn, intlFn) {\n const mode = loc.listingMode(defaultOK);\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return (\n loc.numberingSystem === \"latn\" ||\n !loc.locale ||\n loc.locale.startsWith(\"en\") ||\n (hasIntl() && new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\")\n );\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n if (!forceSimple && hasIntl()) {\n const intlOpts = { useGrouping: false };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n this.hasIntl = hasIntl();\n\n let z;\n if (dt.zone.universal && this.hasIntl) {\n // Chromium doesn't support fixed-offset zones like Etc/GMT+8 in its formatter,\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=364374.\n // So we have to make do. Two cases:\n // 1. The format options tell us to show the zone. We can't do that, so the best\n // we can do is format the date in UTC.\n // 2. The format options don't tell us to show the zone. Then we can adjust them\n // the time and tell the formatter to show it to us in UTC, so that the time is right\n // and the bad zone doesn't show up.\n // We can clean all this up when Chrome fixes this.\n z = \"UTC\";\n if (opts.timeZoneName) {\n this.dt = dt;\n } else {\n this.dt = dt.offset === 0 ? dt : DateTime.fromMillis(dt.ts + dt.offset * 60 * 1000);\n }\n } else if (dt.zone.type === \"local\") {\n this.dt = dt;\n } else {\n this.dt = dt;\n z = dt.zone.name;\n }\n\n if (this.hasIntl) {\n const intlOpts = Object.assign({}, this.opts);\n if (z) {\n intlOpts.timeZone = z;\n }\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n }\n\n format() {\n if (this.hasIntl) {\n return this.dtf.format(this.dt.toJSDate());\n } else {\n const tokenFormat = English.formatString(this.opts),\n loc = Locale.create(\"en-US\");\n return Formatter.create(loc).formatDateTimeFromString(this.dt, tokenFormat);\n }\n }\n\n formatToParts() {\n if (this.hasIntl && hasFormatToParts()) {\n return this.dtf.formatToParts(this.dt.toJSDate());\n } else {\n // This is kind of a cop out. We actually could do this for English. However, we couldn't do it for intl strings\n // and IMO it's too weird to have an uncanny valley like that\n return [];\n }\n }\n\n resolvedOptions() {\n if (this.hasIntl) {\n return this.dtf.resolvedOptions();\n } else {\n return {\n locale: \"en-US\",\n numberingSystem: \"latn\",\n outputCalendar: \"gregory\"\n };\n }\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = Object.assign({ style: \"long\" }, opts);\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return English.formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\n\n/**\n * @private\n */\n\nexport default class Locale {\n static fromOpts(opts) {\n return Locale.create(opts.locale, opts.numberingSystem, opts.outputCalendar, opts.defaultToEN);\n }\n\n static create(locale, numberingSystem, outputCalendar, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale,\n // the system locale is useful for human readable strings but annoying for parsing/formatting known formats\n localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale()),\n numberingSystemR = numberingSystem || Settings.defaultNumberingSystem,\n outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n return new Locale(localeR, numberingSystemR, outputCalendarR, specifiedLocale);\n }\n\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n }\n\n static fromObject({ locale, numberingSystem, outputCalendar } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar);\n }\n\n constructor(locale, numbering, outputCalendar, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n this.weekdaysCache = { format: {}, standalone: {} };\n this.monthsCache = { format: {}, standalone: {} };\n this.meridiemCache = null;\n this.eraCache = {};\n\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n\n listingMode(defaultOK = true) {\n const intl = hasIntl(),\n hasFTP = intl && hasFormatToParts(),\n isActuallyEn = this.isEnglish(),\n hasNoWeirdness =\n (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n\n if (!hasFTP && !(isActuallyEn && hasNoWeirdness) && !defaultOK) {\n return \"error\";\n } else if (!hasFTP || (isActuallyEn && hasNoWeirdness)) {\n return \"en\";\n } else {\n return \"intl\";\n }\n }\n\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(\n alts.locale || this.specifiedLocale,\n alts.numberingSystem || this.numberingSystem,\n alts.outputCalendar || this.outputCalendar,\n alts.defaultToEN || false\n );\n }\n }\n\n redefaultToEN(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: true }));\n }\n\n redefaultToSystem(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: false }));\n }\n\n months(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.months, () => {\n const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n this.monthsCache[formatStr][length] = mapMonths(dt => this.extract(dt, intl, \"month\"));\n }\n return this.monthsCache[formatStr][length];\n });\n }\n\n weekdays(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.weekdays, () => {\n const intl = format\n ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n : { weekday: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays(dt =>\n this.extract(dt, intl, \"weekday\")\n );\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n\n meridiems(defaultOK = true) {\n return listStuff(\n this,\n undefined,\n defaultOK,\n () => English.meridiems,\n () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = { hour: \"numeric\", hour12: true };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n dt => this.extract(dt, intl, \"dayperiod\")\n );\n }\n\n return this.meridiemCache;\n }\n );\n }\n\n eras(length, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.eras, () => {\n const intl = { era: length };\n\n // This is utter bullshit. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map(dt =>\n this.extract(dt, intl, \"era\")\n );\n }\n\n return this.eraCache[length];\n });\n }\n\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find(m => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n\n isEnglish() {\n return (\n this.locale === \"en\" ||\n this.locale.toLowerCase() === \"en-us\" ||\n (hasIntl() && new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\"))\n );\n }\n\n equals(other) {\n return (\n this.locale === other.locale &&\n this.numberingSystem === other.numberingSystem &&\n this.outputCalendar === other.outputCalendar\n );\n }\n}\n","import {\n untruncateYear,\n signedOffset,\n parseInteger,\n parseMillis,\n ianaRegex,\n isUndefined\n} from \"./util.js\";\nimport * as English from \"./english.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n return m =>\n extractors\n .reduce(\n ([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [Object.assign(mergedVals, val), mergedZone || zone, next];\n },\n [{}, null, 1]\n )\n .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\n\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/,\n isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,9}))?)?)?/,\n isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${offsetRegex.source}?`),\n isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`),\n isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/,\n isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/,\n isoOrdinalRegex = /(\\d{4})-?(\\d{3})/,\n extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\"),\n extractISOOrdinalData = simpleParse(\"year\", \"ordinal\"),\n sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/, // dumbed-down version of the ISO one\n sqlTimeRegex = RegExp(\n `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n ),\n sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1)\n };\n\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n const item = {\n hour: int(match, cursor, 0),\n minute: int(match, cursor + 1, 0),\n second: int(match, cursor + 2, 0),\n millisecond: parseMillis(match[cursor + 3])\n };\n\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO duration parsing\n\nconst isoDuration = /^-?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,9})(?:[.,](-?\\d{1,9}))?S)?)?)$/;\n\nfunction extractISODuration(match) {\n const [\n s,\n yearStr,\n monthStr,\n weekStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr,\n millisecondsStr\n ] = match;\n\n const hasNegativePrefix = s[0] === \"-\";\n\n const maybeNegate = num => (num && hasNegativePrefix ? -num : num);\n\n return [\n {\n years: maybeNegate(parseInteger(yearStr)),\n months: maybeNegate(parseInteger(monthStr)),\n weeks: maybeNegate(parseInteger(weekStr)),\n days: maybeNegate(parseInteger(dayStr)),\n hours: maybeNegate(parseInteger(hourStr)),\n minutes: maybeNegate(parseInteger(minuteStr)),\n seconds: maybeNegate(parseInteger(secondStr)),\n milliseconds: maybeNegate(parseMillis(millisecondsStr))\n }\n ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\n\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: English.monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr)\n };\n\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday =\n weekdayStr.length > 3\n ? English.weekdaysLong.indexOf(weekdayStr) + 1\n : English.weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 = /^(?:(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)))$/;\n\nfunction extractRFC2822(match) {\n const [\n ,\n weekdayStr,\n dayStr,\n monthStr,\n yearStr,\n hourStr,\n minuteStr,\n secondStr,\n obsOffset,\n milOffset,\n offHourStr,\n offMinuteStr\n ] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, \" \")\n .replace(/(\\s\\s+)/g, \" \")\n .trim();\n}\n\n// http date\n\nconst rfc1123 = /^(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$/,\n rfc850 = /^(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$/,\n ascii = /^(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})$/;\n\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n extractISOWeekData,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOOrdinalDataAndTime = combineExtractors(extractISOOrdinalData, extractISOTime);\nconst extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset);\n\n/**\n * @private\n */\n\nexport function parseISODate(s) {\n return parse(\n s,\n [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDataAndTime],\n [isoTimeCombinedRegex, extractISOTimeAndOffset]\n );\n}\n\nexport function parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nexport function parseHTTPDate(s) {\n return parse(\n s,\n [rfc1123, extractRFC1123Or850],\n [rfc850, extractRFC1123Or850],\n [ascii, extractASCII]\n );\n}\n\nexport function parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOYmdTimeOffsetAndIANAZone = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\nexport function parseSQL(s) {\n return parse(\n s,\n [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeOffsetAndIANAZone],\n [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n );\n}\n","import { InvalidArgumentError, InvalidDurationError, InvalidUnitError } from \"./errors.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Locale from \"./impl/locale.js\";\nimport { parseISODuration } from \"./impl/regexParser.js\";\nimport {\n asNumber,\n hasOwnProperty,\n isNumber,\n isUndefined,\n normalizeObject,\n roundTo\n} from \"./impl/util.js\";\nimport Settings from \"./settings.js\";\n\nconst INVALID = \"Invalid Duration\";\n\n// unit conversion constants\nconst lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000\n },\n hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n minutes: { seconds: 60, milliseconds: 60 * 1000 },\n seconds: { milliseconds: 1000 }\n },\n casualMatrix = Object.assign(\n {\n years: {\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n ),\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = Object.assign(\n {\n years: {\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: (daysInYearAccurate * 24) / 4,\n minutes: (daysInYearAccurate * 24 * 60) / 4,\n seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n );\n\n// units ordered by size\nconst orderedUnits = [\n \"years\",\n \"quarters\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n];\n\nconst reverseUnits = orderedUnits.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : Object.assign({}, dur.values, alts.values || {}),\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy\n };\n return new Duration(conf);\n}\n\nfunction antiTrunc(n) {\n return n < 0 ? Math.floor(n) : Math.ceil(n);\n}\n\n// NB: mutates parameters\nfunction convert(matrix, fromMap, fromUnit, toMap, toUnit) {\n const conv = matrix[toUnit][fromUnit],\n raw = fromMap[fromUnit] / conv,\n sameSign = Math.sign(raw) === Math.sign(toMap[toUnit]),\n // ok, so this is wild, but see the matrix in the tests\n added =\n !sameSign && toMap[toUnit] !== 0 && Math.abs(raw) <= 1 ? antiTrunc(raw) : Math.trunc(raw);\n toMap[toUnit] += added;\n fromMap[fromUnit] -= added * conv;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n reverseUnits.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n convert(matrix, vals, previous, vals, current);\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime.plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration.years}, {@link Duration.months}, {@link Duration.weeks}, {@link Duration.days}, {@link Duration.hours}, {@link Duration.minutes}, {@link Duration.seconds}, {@link Duration.milliseconds} accessors.\n * * **Configuration** See {@link Duration.locale} and {@link Duration.numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration.plus}, {@link Duration.minus}, {@link Duration.normalize}, {@link Duration.set}, {@link Duration.reconfigure}, {@link Duration.shiftTo}, and {@link Duration.negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration.as}, {@link Duration.toISO}, {@link Duration.toFormat}, and {@link Duration.toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nexport default class Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = accurate ? accurateMatrix : casualMatrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject(Object.assign({ milliseconds: count }, opts));\n }\n\n /**\n * Create a Duration from a Javascript object with keys like 'years' and 'hours.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {string} [obj.locale='en-US'] - the locale to use\n * @param {string} obj.numberingSystem - the numbering system to use\n * @param {string} [obj.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromObject(obj) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\n `Duration.fromObject: argument expected to be an object, got ${\n obj === null ? \"null\" : typeof obj\n }`\n );\n }\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit, [\n \"locale\",\n \"numberingSystem\",\n \"conversionAccuracy\",\n \"zone\" // a bit of debt; it's super inconvenient internally not to be able to blindly pass this\n ]),\n loc: Locale.fromObject(obj),\n conversionAccuracy: obj.conversionAccuracy\n });\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n const obj = Object.assign(parsed, opts);\n return Duration.fromObject(obj);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({ invalid });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\"\n }[unit ? unit.toLowerCase() : unit];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return (o && o.isLuxonDuration) || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * The duration will be converted to the set of units in the format string using {@link Duration.shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = Object.assign({}, opts, {\n floor: opts.round !== false && opts.floor !== false\n });\n return this.isValid\n ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a Javascript object with this Duration's values.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.values);\n\n if (opts.includeConfig) {\n base.conversionAccuracy = this.conversionAccuracy;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n valueOf() {\n return this.as(\"milliseconds\");\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration),\n result = {};\n\n for (const k of orderedUnits) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone(this, { values: result }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit((x, u) => u === \"hour\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone(this, { values: result }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).years //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).months //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).days //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const mixed = Object.assign(this.values, normalizeObject(values, Duration.normalizeUnit, []));\n return clone(this, { values: mixed });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({ locale, numberingSystem, conversionAccuracy } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem }),\n opts = { loc };\n\n if (conversionAccuracy) {\n opts.conversionAccuracy = conversionAccuracy;\n }\n\n return clone(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map(u => Duration.normalizeUnit(u));\n\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n\n normalizeValues(this.matrix, vals);\n\n for (const k of orderedUnits) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = own - i; // we'd like to absorb these fractions in another unit\n\n // plus anything further down the chain that should be rolled up in to this\n for (const down in vals) {\n if (orderedUnits.indexOf(down) > orderedUnits.indexOf(k)) {\n convert(this.matrix, vals, down, built, k);\n }\n }\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] +=\n key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n return clone(this, { values: built }, true).normalize();\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = -this.values[k];\n }\n return clone(this, { values: negated }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n for (const u of orderedUnits) {\n if (this.values[u] !== other.values[u]) {\n return false;\n }\n }\n return true;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDuration(durationish) {\n if (isNumber(durationish)) {\n return Duration.fromMillis(durationish);\n } else if (Duration.isDuration(durationish)) {\n return durationish;\n } else if (typeof durationish === \"object\") {\n return Duration.fromObject(durationish);\n } else {\n throw new InvalidArgumentError(\n `Unknown duration argument ${durationish} of type ${typeof durationish}`\n );\n }\n}\n","import DateTime, { friendlyDateTime } from \"./datetime.js\";\nimport Duration, { friendlyDuration } from \"./duration.js\";\nimport Settings from \"./settings.js\";\nimport { InvalidArgumentError, InvalidIntervalError } from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\n \"end before start\",\n `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n );\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link fromDateTimes}, {@link after}, {@link before}, or {@link fromISO}.\n * * **Accessors** Use {@link start} and {@link end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link count}, {@link length}, {@link hasSame}, {@link contains}, {@link isAfter}, or {@link isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link set}, {@link splitAt}, {@link splitBy}, {@link divideEqually}, {@link merge}, {@link xor}, {@link union}, {@link intersection}, or {@link difference}.\n * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs}\n * * **Output** To convert the Interval into other representations, see {@link toString}, {@link toISO}, {@link toISODate}, {@link toISOTime}, {@link toFormat}, and {@link toDuration}.\n */\nexport default class Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({ invalid });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n\n const validateError = validateStartEnd(builtStart, builtEnd);\n\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `<start>/<end>`, `<start>/<duration>`, and `<duration>/<end>` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime.fromISO} and optionally {@link Duration.fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n const start = DateTime.fromISO(s, opts),\n end = DateTime.fromISO(e, opts);\n\n if (start.isValid && end.isValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (start.isValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (end.isValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return (o && o.isLuxonInterval) || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @return {number}\n */\n count(unit = \"milliseconds\") {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit),\n end = this.end.startOf(unit);\n return Math.floor(end.diff(start, unit).get(unit)) + 1;\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({ start, end } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...[DateTime]} dateTimes - the unit of time to count.\n * @return {[Interval]}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes\n .map(friendlyDateTime)\n .filter(d => this.contains(d))\n .sort(),\n results = [];\n let { s } = this,\n i = 0;\n\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {[Interval]}\n */\n splitBy(duration) {\n const dur = friendlyDuration(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n let { s } = this,\n added,\n next;\n\n const results = [];\n while (s < this.e) {\n added = s.plus(dur);\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {[Interval]}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Return whether this Interval engulfs the start and end of the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s > e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static merge(intervals) {\n const [found, final] = intervals.sort((a, b) => a.s - b.s).reduce(\n ([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n },\n [[], null]\n );\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map(i => [{ time: i.s, type: \"s\" }, { time: i.e, type: \"e\" }]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {[Interval]}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals))\n .map(i => this.intersection(i))\n .filter(i => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format string.\n * @param {string} dateFormat - the format string. This string formats the start and end time. See {@link DateTime.toFormat} for details.\n * @param {Object} opts - options\n * @param {string} [opts.separator = ' – '] - a separator to place between the start and end representations\n * @return {string}\n */\n toFormat(dateFormat, { separator = \" – \" } = {}) {\n if (!this.isValid) return INVALID;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n","import DateTime from \"./datetime.js\";\nimport Settings from \"./settings.js\";\nimport Locale from \"./impl/locale.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nimport { hasFormatToParts, hasIntl, hasRelative } from \"./impl/util.js\";\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nexport default class Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.local()\n .setZone(zone)\n .set({ month: 12 });\n\n return !zone.universal && proto.offset !== proto.set({ month: 6 }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidSpecifier(zone) && IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone.isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n * @return {[string]}\n */\n static months(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {[string]}\n */\n static monthsFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {[string]}\n */\n static weekdays(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link weekdays}\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @return {[string]}\n */\n static weekdaysFormat(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {[string]}\n */\n static meridiems({ locale = null } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {[string]}\n */\n static eras(length = \"short\", { locale = null } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, timezone support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `zones`: whether this environment supports IANA timezones\n * * `intlTokens`: whether this environment supports internationalized token-based formatting/parsing\n * * `intl`: whether this environment supports general internationalization\n * * `relative`: whether this environment supports relative time formatting\n * @example Info.features() //=> { intl: true, intlTokens: false, zones: true, relative: false }\n * @return {Object}\n */\n static features() {\n let intl = false,\n intlTokens = false,\n zones = false,\n relative = false;\n\n if (hasIntl()) {\n intl = true;\n intlTokens = hasFormatToParts();\n relative = hasRelative();\n\n try {\n zones =\n new Intl.DateTimeFormat(\"en\", { timeZone: \"America/New_York\" }).resolvedOptions()\n .timeZone === \"America/New_York\";\n } catch (e) {\n zones = false;\n }\n }\n\n return { intl, intlTokens, zones, relative };\n }\n}\n","import Duration from \"../duration.js\";\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = dt =>\n dt\n .toUTC(0, { keepLocalTime: true })\n .startOf(\"day\")\n .valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [\n [\"years\", (a, b) => b.year - a.year],\n [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n [\n \"weeks\",\n (a, b) => {\n const days = dayDiff(a, b);\n return (days - (days % 7)) / 7;\n }\n ],\n [\"days\", dayDiff]\n ];\n\n const results = {};\n let lowestOrder, highWater;\n\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n\n let delta = differ(cursor, later);\n highWater = cursor.plus({ [unit]: delta });\n\n if (highWater > later) {\n cursor = cursor.plus({ [unit]: delta - 1 });\n delta -= 1;\n } else {\n cursor = highWater;\n }\n\n results[unit] = delta;\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nexport default function(earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n const remainingMillis = later - cursor;\n\n const lowerOrderUnits = units.filter(\n u => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n );\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({ [lowestOrder]: 1 });\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n const duration = Duration.fromObject(Object.assign(results, opts));\n\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts)\n .shiftTo(...lowerOrderUnits)\n .plus(duration);\n } else {\n return duration;\n }\n}\n","const numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\"\n};\n\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881]\n};\n\n// eslint-disable-next-line\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nexport function parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\nexport function digitRegex({ numberingSystem }, append = \"\") {\n return new RegExp(`${numberingSystems[numberingSystem || \"latn\"]}${append}`);\n}\n","import { parseMillis, isUndefined, untruncateYear, signedOffset, hasOwnProperty } from \"./util.js\";\nimport Formatter from \"./formatter.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport DateTime from \"../datetime.js\";\nimport { digitRegex, parseDigits } from \"./digits.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = i => i) {\n return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n return s.replace(/\\./, \"\\\\.?\");\n}\n\nfunction stripInsensitivities(s) {\n return s.replace(/\\./, \"\").toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) =>\n strings.findIndex(i => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex\n };\n }\n}\n\nfunction offset(regex, groups) {\n return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n // eslint-disable-next-line no-useless-escape\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = t => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n unitate = t => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\", false), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\", false), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true, false), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true, false), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false, false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false, false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false, false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false, false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true, false), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true, false), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n default:\n return literal(t);\n }\n };\n\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP\n };\n\n unit.token = token;\n\n return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\"\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\"\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\"\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\"\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour: {\n numeric: \"h\",\n \"2-digit\": \"hh\"\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\"\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\"\n }\n};\n\nfunction tokenForPart(part, locale, formatOpts) {\n const { type, value } = part;\n\n if (type === \"literal\") {\n return {\n literal: true,\n val: value\n };\n }\n\n const style = formatOpts[type];\n\n let val = partTypeStyleToTokenVal[type];\n if (typeof val === \"object\") {\n val = val[style];\n }\n\n if (val) {\n return {\n literal: false,\n val\n };\n }\n\n return undefined;\n}\n\nfunction buildRegex(units) {\n const re = units.map(u => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n const toField = token => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n\n let zone;\n if (!isUndefined(matches.Z)) {\n zone = new FixedOffsetZone(matches.Z);\n } else if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n } else {\n zone = null;\n }\n\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n\n return [vals, zone];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n\n return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n\n if (!formatOpts) {\n return token;\n }\n\n const formatter = Formatter.create(locale, formatOpts);\n const parts = formatter.formatDateTimeParts(getDummyDateTime());\n\n const tokens = parts.map(p => tokenForPart(p, locale, formatOpts));\n\n if (tokens.includes(undefined)) {\n return token;\n }\n\n return tokens;\n}\n\nfunction expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map(t => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nexport function explainFromTokens(locale, input, format) {\n const tokens = expandMacroTokens(Formatter.parseFormat(format), locale),\n units = tokens.map(t => unitForToken(t, locale)),\n disqualifyingUnit = units.find(t => t.invalidReason);\n\n if (disqualifyingUnit) {\n return { input, tokens, invalidReason: disqualifyingUnit.invalidReason };\n } else {\n const [regexString, handlers] = buildRegex(units),\n regex = RegExp(regexString, \"i\"),\n [rawMatches, matches] = match(input, regex, handlers),\n [result, zone] = matches ? dateTimeFromMatches(matches) : [null, null];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\n \"Can't include meridiem when specifying 24-hour format\"\n );\n }\n return { input, tokens, regex, rawMatches, matches, result, zone };\n }\n}\n\nexport function parseFromTokens(locale, input, format) {\n const { result, zone, invalidReason } = explainFromTokens(locale, input, format);\n return [result, zone, invalidReason];\n}\n","import {\n integerBetween,\n isLeapYear,\n timeObject,\n daysInYear,\n daysInMonth,\n weeksInWeekYear,\n isInteger\n} from \"./util.js\";\nimport Invalid from \"./invalid.js\";\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\n \"unit out of range\",\n `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n );\n}\n\nfunction dayOfWeek(year, month, day) {\n const js = new Date(Date.UTC(year, month - 1, day)).getUTCDay();\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex(i => i < ordinal),\n day = ordinal - table[month0];\n return { month: month0 + 1, day };\n}\n\n/**\n * @private\n */\n\nexport function gregorianToWeek(gregObj) {\n const { year, month, day } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = dayOfWeek(year, month, day);\n\n let weekNumber = Math.floor((ordinal - weekday + 10) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear);\n } else if (weekNumber > weeksInWeekYear(year)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return Object.assign({ weekYear, weekNumber, weekday }, timeObject(gregObj));\n}\n\nexport function weekToGregorian(weekData) {\n const { weekYear, weekNumber, weekday } = weekData,\n weekdayOfJan4 = dayOfWeek(weekYear, 1, 4),\n yearInDays = daysInYear(weekYear);\n\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 3,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n const { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(weekData));\n}\n\nexport function gregorianToOrdinal(gregData) {\n const { year, month, day } = gregData,\n ordinal = computeOrdinal(year, month, day);\n\n return Object.assign({ year, ordinal }, timeObject(gregData));\n}\n\nexport function ordinalToGregorian(ordinalData) {\n const { year, ordinal } = ordinalData,\n { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(ordinalData));\n}\n\nexport function hasInvalidWeekData(obj) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(obj.weekNumber, 1, weeksInWeekYear(obj.weekYear)),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.week);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\n\nexport function hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\n\nexport function hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\n\nexport function hasInvalidTimeData(obj) {\n const { hour, minute, second, millisecond } = obj;\n const validHour =\n integerBetween(hour, 0, 23) ||\n (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n","import Duration, { friendlyDuration } from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Settings from \"./settings.js\";\nimport Info from \"./info.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport {\n isUndefined,\n maybeArray,\n isDate,\n isNumber,\n bestBy,\n daysInMonth,\n daysInYear,\n isLeapYear,\n weeksInWeekYear,\n normalizeObject,\n roundTo,\n objToLocalTS\n} from \"./impl/util.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport diff from \"./impl/diff.js\";\nimport { parseRFC2822Date, parseISODate, parseHTTPDate, parseSQL } from \"./impl/regexParser.js\";\nimport { parseFromTokens, explainFromTokens } from \"./impl/tokenParser.js\";\nimport {\n gregorianToWeek,\n weekToGregorian,\n gregorianToOrdinal,\n ordinalToGregorian,\n hasInvalidGregorianData,\n hasInvalidWeekData,\n hasInvalidOrdinalData,\n hasInvalidTimeData\n} from \"./impl/conversions.js\";\nimport * as Formats from \"./impl/formats.js\";\nimport {\n InvalidArgumentError,\n ConflictingSpecificationError,\n InvalidUnitError,\n InvalidDateTimeError\n} from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid\n };\n return new DateTime(Object.assign({}, current, alts, { old: current }));\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n\n const d = new Date(ts);\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds()\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const keys = Object.keys(dur.values);\n if (keys.indexOf(\"milliseconds\") === -1) {\n keys.push(\"milliseconds\");\n }\n\n dur = dur.shiftTo(...keys);\n\n const oPre = inst.o,\n year = inst.c.year + dur.years,\n month = inst.c.month + dur.months + dur.quarters * 3,\n c = Object.assign({}, inst.c, {\n year,\n month,\n day: Math.min(inst.c.day, daysInMonth(year, month)) + dur.days + dur.weeks * 7\n }),\n millisToAdd = Duration.fromObject({\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n\n return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text) {\n const { setZone, zone } = opts;\n if (parsed && Object.keys(parsed).length !== 0) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(\n Object.assign(parsed, opts, {\n zone: interpretationZone,\n // setZone is a valid option in the calling methods, but not in fromObject\n setZone: undefined\n })\n );\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(\n new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n );\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid\n ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true\n }).formatDateTimeFromString(dt, format)\n : null;\n}\n\n// technical time formats (e.g. the time part of ISO 8601), take some options\n// and this commonizes their handling\nfunction toTechTimeFormat(\n dt,\n {\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset,\n includeZone = false,\n spaceZone = false,\n format = \"extended\"\n }\n) {\n let fmt = format === \"basic\" ? \"HHmm\" : \"HH:mm\";\n\n if (!suppressSeconds || dt.second !== 0 || dt.millisecond !== 0) {\n fmt += format === \"basic\" ? \"ss\" : \":ss\";\n if (!suppressMilliseconds || dt.millisecond !== 0) {\n fmt += \".SSS\";\n }\n }\n\n if ((includeZone || includeOffset) && spaceZone) {\n fmt += \" \";\n }\n\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += format === \"basic\" ? \"ZZZ\" : \"ZZ\";\n }\n\n return toTechFormat(dt, fmt);\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\n \"weekYear\",\n \"weekNumber\",\n \"weekday\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\"\n ],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\"\n }[unit.toLowerCase()];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, zone) {\n // assume we have the higher-order units\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zone.offset(tsNow),\n [ts, o] = objToTS(obj, offsetProvis, zone);\n\n return new DateTime({\n ts,\n zone,\n o\n });\n}\n\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = unit => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end\n .startOf(unit)\n .diff(start.startOf(unit), unit)\n .get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(0, opts.units[opts.units.length - 1]);\n}\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link local}, {@link utc}, and (most flexibly) {@link fromObject}. To create one from a standard string format, use {@link fromISO}, {@link fromHTTP}, and {@link fromRFC2822}. To create one from a custom string format, use {@link fromFormat}. To create one from a native JS date, use {@link fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link toObject}), use the {@link year}, {@link month},\n * {@link day}, {@link hour}, {@link minute}, {@link second}, {@link millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link weekYear}, {@link weekNumber}, and {@link weekday} accessors.\n * * **Configuration** See the {@link locale} and {@link numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link set}, {@link reconfigure}, {@link setZone}, {@link setLocale}, {@link plus}, {@link minus}, {@link endOf}, {@link startOf}, {@link toUTC}, and {@link toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link toRelative}, {@link toRelativeCalendar}, {@link toJSON}, {@link toISO}, {@link toHTTP}, {@link toObject}, {@link toRFC2822}, {@link toString}, {@link toLocaleString}, {@link toFormat}, {@link toMillis} and {@link toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nexport default class DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n\n let invalid =\n config.invalid ||\n (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n const ot = zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12) //~> 2017-03-12T00:00:00\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({ ts: Settings.now() });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n Settings.defaultZone\n );\n }\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765Z\n * @return {DateTime}\n */\n static utc(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({\n ts: Settings.now(),\n zone: FixedOffsetZone.utcInstance\n });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n FixedOffsetZone.utcInstance\n );\n }\n }\n\n /**\n * Create a DateTime from a Javascript Date object. Uses the default zone.\n * @param {Date} date - a Javascript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options)\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\n `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n );\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a Javascript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {string|Zone} [obj.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [obj.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} obj.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} obj.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @return {DateTime}\n */\n static fromObject(obj) {\n const zoneToUse = normalizeZone(obj.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zoneToUse.offset(tsNow),\n normalized = normalizeObject(obj, normalizeUnit, [\n \"zone\",\n \"locale\",\n \"outputCalendar\",\n \"numberingSystem\"\n ]),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber,\n loc = Locale.fromObject(obj);\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData\n ? hasInvalidWeekData(normalized)\n : containsOrdinal\n ? hasInvalidOrdinalData(normalized)\n : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData\n ? weekToGregorian(normalized)\n : containsOrdinal\n ? ordinalToGregorian(normalized)\n : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\n \"mismatched weekday\",\n `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n );\n }\n\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/parsing.html#table-of-tokens\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n }),\n [vals, parsedZone, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({ invalid });\n }\n }\n\n /**\n * Check if an object is a DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return (o && o.isLuxonDateTime) || false;\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.local().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.universal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return (\n this.offset > this.set({ month: 1 }).offset || this.offset > this.set({ month: 5 }).offset\n );\n }\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOpts(opts = {}) {\n const { locale, numberingSystem, calendar } = Formatter.create(\n this.loc.clone(opts),\n opts\n ).resolvedOptions(this);\n return { locale, numberingSystem, outputCalendar: calendar };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link plus}. You may wish to use {@link toLocal} and {@link toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, { ts: newTS, zone });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n return clone(this, { loc });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({ locale });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link reconfigure} and {@link setZone}.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const normalized = normalizeObject(values, normalizeUnit, []),\n settingWeekStuff =\n !isUndefined(normalized.weekYear) ||\n !isUndefined(normalized.weekNumber) ||\n !isUndefined(normalized.weekday);\n\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(Object.assign(gregorianToWeek(this.c), normalized));\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian(Object.assign(gregorianToOrdinal(this.c), normalized));\n } else {\n mixed = Object.assign(this.toObject(), normalized);\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, { ts, o });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.local().plus(123) //~> in 123 milliseconds\n * @example DateTime.local().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.local().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.local().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.local().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.local().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit) {\n if (!this.isValid) return this;\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n case \"milliseconds\":\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n o.weekday = 1;\n }\n\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'month', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit) {\n return this.isValid\n ? this.plus({ [unit]: 1 })\n .startOf(unit)\n .minus(1)\n : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options\n * @example DateTime.local().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.local().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.local().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.local().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param opts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @example DateTime.local().toLocaleString(); //=> 4/20/2017\n * @example DateTime.local().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString({ locale: 'en-gb' }); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.local().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.local().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.local().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.local().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.local().toLocaleString({ hour: '2-digit', minute: '2-digit', hour12: false }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(opts = Formats.DATE_SHORT) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTime(this)\n : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.local().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.local().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.local().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.local().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */\n toISO(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toISODate(opts)}T${this.toISOTime(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */\n toISODate({ format = \"extended\" } = {}) {\n let fmt = format === \"basic\" ? \"yyyyMMdd\" : \"yyyy-MM-dd\";\n if (this.year > 9999) {\n fmt = \"+\" + fmt;\n }\n\n return toTechFormat(this, fmt);\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n format = \"extended\"\n } = {}) {\n return toTechTimeFormat(this, {\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n format\n });\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime, always in UTC\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */\n toSQLDate() {\n return toTechFormat(this, \"yyyy-MM-dd\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.local().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.local().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.local().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({ includeOffset = true, includeZone = false } = {}) {\n return toTechTimeFormat(this, {\n includeOffset,\n includeZone,\n spaceZone: true\n });\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a Javascript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.local().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.c);\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a Javascript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\n this.invalid || otherDateTime.invalid,\n \"created by diffing an invalid DateTime\"\n );\n }\n\n const durOpts = Object.assign(\n { locale: this.locale, numberingSystem: this.numberingSystem },\n opts\n );\n\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.local(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @example DateTime.local().hasSame(otherDT, 'day'); //~> true if both the same calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit) {\n if (!this.isValid) return false;\n if (unit === \"millisecond\") {\n return this.valueOf() === otherDateTime.valueOf();\n } else {\n const inputMs = otherDateTime.valueOf();\n return this.startOf(unit) <= inputMs && inputMs <= this.endOf(unit);\n }\n }\n\n /**\n * Equality check\n * Two DateTimes are equal iff they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return (\n this.isValid &&\n other.isValid &&\n this.valueOf() === other.valueOf() &&\n this.zone.equals(other.zone) &&\n this.loc.equals(other.loc)\n );\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {boolean} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.local().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n * @example DateTime.local().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.local().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.local().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.local().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({ zone: this.zone }),\n padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n return diffRelative(\n base,\n this.plus(padding),\n Object.assign(options, {\n numeric: \"always\",\n units: [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"]\n })\n );\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.local().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.local().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n\n return diffRelative(\n options.base || DateTime.fromObject({ zone: this.zone }),\n this,\n Object.assign(options, {\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true\n })\n );\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return Formats.DATE_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return Formats.DATE_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return Formats.DATE_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return Formats.DATE_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return Formats.TIME_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return Formats.TIME_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return Formats.TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return Formats.TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return Formats.TIME_24_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return Formats.TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return Formats.TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return Formats.TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return Formats.DATETIME_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return Formats.DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return Formats.DATETIME_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return Formats.DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return Formats.DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return Formats.DATETIME_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return Formats.DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return Formats.DATETIME_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return Formats.DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\n `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n );\n }\n}\n"],"names":["LuxonError","Error","InvalidDateTimeError","reason","toMessage","InvalidIntervalError","InvalidDurationError","ConflictingSpecificationError","InvalidUnitError","unit","InvalidArgumentError","ZoneIsAbstractError","n","s","l","DATE_SHORT","year","month","day","DATE_MED","DATE_FULL","DATE_HUGE","weekday","TIME_SIMPLE","hour","minute","TIME_WITH_SECONDS","second","TIME_WITH_SHORT_OFFSET","timeZoneName","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","hour12","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","isUndefined","o","isNumber","isInteger","isString","isDate","Object","prototype","toString","call","hasIntl","Intl","DateTimeFormat","e","hasFormatToParts","formatToParts","hasRelative","RelativeTimeFormat","maybeArray","thing","Array","isArray","bestBy","arr","by","compare","length","undefined","reduce","best","next","pair","pick","obj","keys","a","k","hasOwnProperty","prop","integerBetween","bottom","top","floorMod","x","Math","floor","padStart","input","repeat","slice","parseInteger","string","parseInt","parseMillis","fraction","f","parseFloat","roundTo","number","digits","towardZero","factor","rounder","trunc","round","isLeapYear","daysInYear","daysInMonth","modMonth","modYear","objToLocalTS","d","Date","UTC","millisecond","setUTCFullYear","getUTCFullYear","weeksInWeekYear","weekYear","p1","last","p2","untruncateYear","parseZoneInfo","ts","offsetFormat","locale","timeZone","date","intlOpts","modified","assign","intl","parsed","find","m","type","toLowerCase","value","without","format","included","diffed","substring","trimmed","replace","signedOffset","offHourStr","offMinuteStr","offHour","Number","isNaN","offMin","offMinSigned","is","asNumber","numericValue","normalizeObject","normalizer","nonUnitKeys","normalized","u","indexOf","v","formatOffset","offset","hours","minutes","abs","sign","base","RangeError","timeObject","ianaRegex","stringify","JSON","sort","monthsLong","monthsShort","monthsNarrow","months","weekdaysLong","weekdaysShort","weekdaysNarrow","weekdays","meridiems","erasLong","erasShort","erasNarrow","eras","meridiemForDateTime","dt","weekdayForDateTime","monthForDateTime","eraForDateTime","formatRelativeTime","count","numeric","narrow","units","years","quarters","weeks","days","seconds","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","formatString","knownFormat","filtered","key","dateTimeHuge","Formats","stringifyTokens","splits","tokenToString","token","literal","val","macroTokenToFormatOpts","D","DD","DDD","DDDD","t","tt","ttt","tttt","T","TT","TTT","TTTT","ff","fff","ffff","F","FF","FFF","FFFF","Formatter","create","opts","parseFormat","fmt","current","currentFull","bracketed","i","c","charAt","push","formatOpts","loc","systemLoc","formatWithSystemDefault","redefaultToSystem","df","dtFormatter","formatDateTime","formatDateTimeParts","resolvedOptions","num","p","forceSimple","padTo","numberFormatter","formatDateTimeFromString","knownEnglish","listingMode","useDateTimeFormatter","outputCalendar","extract","isOffsetFixed","allowZ","isValid","zone","meridiem","English","standalone","maybeMacro","era","offsetName","zoneName","weekNumber","ordinal","quarter","formatDurationFromString","dur","tokenToField","lildur","mapped","get","tokens","realTokens","found","concat","collapsed","shiftTo","map","filter","Invalid","explanation","Zone","equals","otherZone","singleton","LocalZone","getTimezoneOffset","matchingRegex","RegExp","source","dtfCache","makeDTF","typeToPos","hackyOffset","dtf","formatted","exec","fMonth","fDay","fYear","fHour","fMinute","fSecond","partsOffset","filled","pos","ianaZoneCache","IANAZone","name","resetCache","isValidSpecifier","match","isValidZone","parseGMTOffset","specifier","valid","adjustedHour","asUTC","asTS","over","FixedOffsetZone","instance","utcInstance","parseSpecifier","r","fixed","InvalidZone","NaN","normalizeZone","defaultZone","lowered","now","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","throwOnInvalid","Settings","resetCaches","Locale","z","numberingSystem","intlDTCache","getCachedDTF","locString","intlNumCache","getCachedINF","inf","NumberFormat","intlRelCache","getCachedRTF","cacheKeyOpts","sysLocaleCache","systemLocale","computedSys","parseLocaleString","localeStr","uIndex","options","smaller","calendar","intlConfigString","mapMonths","ms","DateTime","utc","mapWeekdays","listStuff","defaultOK","englishFn","intlFn","mode","supportsFastNumbers","startsWith","PolyNumberFormatter","useGrouping","minimumIntegerDigits","PolyDateFormatter","universal","fromMillis","toJSDate","tokenFormat","PolyRelFormatter","isEnglish","style","rtf","fromOpts","defaultToEN","specifiedLocale","localeR","numberingSystemR","outputCalendarR","fromObject","numbering","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","weekdaysCache","monthsCache","meridiemCache","eraCache","fastNumbersCached","hasFTP","isActuallyEn","hasNoWeirdness","clone","alts","getOwnPropertyNames","redefaultToEN","formatStr","field","results","matching","fastNumbers","relFormatter","other","combineRegexes","regexes","full","combineExtractors","extractors","ex","mergedVals","mergedZone","cursor","parse","patterns","regex","extractor","simpleParse","ret","offsetRegex","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","isoYmdRegex","isoWeekRegex","isoOrdinalRegex","extractISOWeekData","extractISOOrdinalData","sqlYmdRegex","sqlTimeRegex","sqlTimeExtensionRegex","int","fallback","extractISOYmd","item","extractISOTime","extractISOOffset","local","fullOffset","extractIANAZone","isoDuration","extractISODuration","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","hasNegativePrefix","maybeNegate","milliseconds","obsOffsets","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","fromStrings","weekdayStr","result","rfc2822","extractRFC2822","obsOffset","milOffset","preprocessRFC2822","trim","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDataAndTime","extractISOTimeAndOffset","parseISODate","parseRFC2822Date","parseHTTPDate","parseISODuration","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOYmdTimeOffsetAndIANAZone","extractISOTimeOffsetAndIANAZone","parseSQL","INVALID","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits","reverseUnits","reverse","clear","conf","values","conversionAccuracy","Duration","antiTrunc","ceil","convert","matrix","fromMap","fromUnit","toMap","toUnit","conv","raw","sameSign","added","normalizeValues","vals","previous","config","accurate","invalid","isLuxonDuration","normalizeUnit","fromISO","text","week","isDuration","toFormat","fmtOpts","toObject","includeConfig","toISO","toJSON","valueOf","as","plus","duration","friendlyDuration","minus","negate","mapUnits","fn","set","mixed","reconfigure","normalize","built","accumulated","lastUnit","own","ak","down","negated","durationish","validateStartEnd","start","end","Interval","isLuxonInterval","fromDateTimes","builtStart","friendlyDateTime","builtEnd","validateError","after","before","split","isInterval","toDuration","startOf","diff","hasSame","isEmpty","isAfter","dateTime","isBefore","contains","splitAt","dateTimes","sorted","splitBy","divideEqually","numberOfParts","overlaps","abutsStart","abutsEnd","engulfs","intersection","union","merge","intervals","b","sofar","final","xor","currentCount","ends","time","flattened","difference","toISODate","toISOTime","dateFormat","separator","invalidReason","mapEndpoints","mapFn","Info","hasDST","proto","setZone","isValidIANAZone","monthsFormat","weekdaysFormat","features","intlTokens","zones","relative","dayDiff","earlier","later","utcDayStart","toUTC","keepLocalTime","highOrderDiffs","differs","lowestOrder","highWater","differ","delta","remainingMillis","lowerOrderUnits","numberingSystems","arab","arabext","bali","beng","deva","fullwide","gujr","hanidec","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","latn","numberingSystemsUTF16","hanidecChars","parseDigits","str","code","charCodeAt","search","min","max","digitRegex","append","MISSING_FTP","intUnit","post","deser","fixListRegex","stripInsensitivities","oneOf","strings","startIndex","join","findIndex","groups","h","simple","escapeToken","unitForToken","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","unitate","partTypeStyleToTokenVal","short","long","dayperiod","dayPeriod","tokenForPart","part","buildRegex","re","handlers","matches","all","matchIndex","dateTimeFromMatches","toField","Z","q","M","G","y","S","dummyDateTimeCache","getDummyDateTime","maybeExpandMacroToken","formatter","parts","includes","expandMacroTokens","explainFromTokens","disqualifyingUnit","regexString","rawMatches","parseFromTokens","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","getUTCDay","computeOrdinal","uncomputeOrdinal","table","month0","gregorianToWeek","gregObj","weekToGregorian","weekData","weekdayOfJan4","yearInDays","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","hasInvalidWeekData","validYear","validWeek","validWeekday","hasInvalidOrdinalData","validOrdinal","hasInvalidGregorianData","validMonth","validDay","hasInvalidTimeData","validHour","validMinute","validSecond","validMillisecond","MAX_DATE","unsupportedZone","possiblyCachedWeekData","inst","old","fixOffset","localTS","tz","utcGuess","o2","o3","tsToObj","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","objToTS","adjustTime","oPre","millisToAdd","parseDataToDateTime","parsedZone","interpretationZone","toTechFormat","toTechTimeFormat","suppressSeconds","suppressMilliseconds","includeOffset","includeZone","spaceZone","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedWeekUnits","orderedOrdinalUnits","weeknumber","weeksnumber","weeknumbers","weekyear","weekyears","quickDT","tsNow","offsetProvis","diffRelative","calendary","unchanged","ot","_zone","isLuxonDateTime","fromJSDate","zoneToUse","fromSeconds","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","useWeekData","defaultValues","objNow","foundFirst","higherOrderInvalid","gregorian","tsFinal","offsetFinal","fromRFC2822","fromHTTP","fromFormat","localeToUse","fromString","fromSQL","isDateTime","resolvedLocaleOpts","toLocal","keepCalendarTime","newTS","offsetGuess","asObj","setLocale","settingWeekStuff","normalizedUnit","endOf","toLocaleString","toLocaleParts","toISOWeekDate","toRFC2822","toHTTP","toSQLDate","toSQLTime","toSQL","toMillis","toSeconds","toBSON","otherDateTime","durOpts","otherIsLater","diffNow","until","inputMs","toRelative","padding","toRelativeCalendar","every","fromFormatExplain","fromStringExplain","dateTimeish"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"luxon.js","sources":["../../src/errors.js","../../src/impl/formats.js","../../src/impl/util.js","../../src/impl/english.js","../../src/impl/formatter.js","../../src/impl/invalid.js","../../src/zone.js","../../src/zones/localZone.js","../../src/zones/IANAZone.js","../../src/zones/fixedOffsetZone.js","../../src/zones/invalidZone.js","../../src/impl/zoneUtil.js","../../src/settings.js","../../src/impl/locale.js","../../src/impl/regexParser.js","../../src/duration.js","../../src/interval.js","../../src/info.js","../../src/impl/diff.js","../../src/impl/digits.js","../../src/impl/tokenParser.js","../../src/impl/conversions.js","../../src/datetime.js"],"sourcesContent":["// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nclass LuxonError extends Error {}\n\n/**\n * @private\n */\nexport class InvalidDateTimeError extends LuxonError {\n constructor(reason) {\n super(`Invalid DateTime: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidIntervalError extends LuxonError {\n constructor(reason) {\n super(`Invalid Interval: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidDurationError extends LuxonError {\n constructor(reason) {\n super(`Invalid Duration: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class ConflictingSpecificationError extends LuxonError {}\n\n/**\n * @private\n */\nexport class InvalidUnitError extends LuxonError {\n constructor(unit) {\n super(`Invalid unit ${unit}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidArgumentError extends LuxonError {}\n\n/**\n * @private\n */\nexport class ZoneIsAbstractError extends LuxonError {\n constructor() {\n super(\"Zone is an abstract class\");\n }\n}\n","/**\n * @private\n */\n\nconst n = \"numeric\",\n s = \"short\",\n l = \"long\";\n\nexport const DATE_SHORT = {\n year: n,\n month: n,\n day: n\n};\n\nexport const DATE_MED = {\n year: n,\n month: s,\n day: n\n};\n\nexport const DATE_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s\n};\n\nexport const DATE_FULL = {\n year: n,\n month: l,\n day: n\n};\n\nexport const DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l\n};\n\nexport const TIME_SIMPLE = {\n hour: n,\n minute: n\n};\n\nexport const TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n\n};\n\nexport const TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n\nexport const TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23', always 24-hour.\n */\nexport const TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 EDT', always 24-hour.\n */\nexport const TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: s\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 Eastern Daylight Time', always 24-hour.\n */\nexport const TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: l\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s\n};\n\nexport const DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l\n};\n\nexport const DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n","/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\nimport { InvalidArgumentError } from \"../errors.js\";\n\n/**\n * @private\n */\n\n// TYPES\n\nexport function isUndefined(o) {\n return typeof o === \"undefined\";\n}\n\nexport function isNumber(o) {\n return typeof o === \"number\";\n}\n\nexport function isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\n\nexport function isString(o) {\n return typeof o === \"string\";\n}\n\nexport function isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nexport function hasIntl() {\n try {\n return typeof Intl !== \"undefined\" && Intl.DateTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\nexport function hasFormatToParts() {\n return !isUndefined(Intl.DateTimeFormat.prototype.formatToParts);\n}\n\nexport function hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nexport function maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\n\nexport function bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\n\nexport function pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\n\nexport function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n// NUMBERS AND STRINGS\n\nexport function integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nexport function floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\n\nexport function padStart(input, n = 2) {\n if (input.toString().length < n) {\n return (\"0\".repeat(n) + input).slice(-n);\n } else {\n return input.toString();\n }\n}\n\nexport function parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\n\nexport function parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\n\nexport function roundTo(number, digits, towardZero = false) {\n const factor = 10 ** digits,\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nexport function isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// covert a calendar object to a local timestamp (epoch, but with the offset baked in)\nexport function objToLocalTS(obj) {\n let d = Date.UTC(\n obj.year,\n obj.month - 1,\n obj.day,\n obj.hour,\n obj.minute,\n obj.second,\n obj.millisecond\n );\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n return +d;\n}\n\nexport function weeksInWeekYear(weekYear) {\n const p1 =\n (weekYear +\n Math.floor(weekYear / 4) -\n Math.floor(weekYear / 100) +\n Math.floor(weekYear / 400)) %\n 7,\n last = weekYear - 1,\n p2 = (last + Math.floor(last / 4) - Math.floor(last / 100) + Math.floor(last / 400)) % 7;\n return p1 === 4 || p2 === 3 ? 53 : 52;\n}\n\nexport function untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > 60 ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nexport function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hour12: false,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\"\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n const modified = Object.assign({ timeZoneName: offsetFormat }, intlOpts),\n intl = hasIntl();\n\n if (intl && hasFormatToParts()) {\n const parsed = new Intl.DateTimeFormat(locale, modified)\n .formatToParts(date)\n .find(m => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n } else if (intl) {\n // this probably doesn't work for all locales\n const without = new Intl.DateTimeFormat(locale, intlOpts).format(date),\n included = new Intl.DateTimeFormat(locale, modified).format(date),\n diffed = included.substring(without.length),\n trimmed = diffed.replace(/^[, \\u200e]+/, \"\");\n return trimmed;\n } else {\n return null;\n }\n}\n\n// signedOffset('-5', '30') -> -330\nexport function signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nexport function asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue))\n throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\n\nexport function normalizeObject(obj, normalizer, nonUnitKeys) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n if (nonUnitKeys.indexOf(u) >= 0) continue;\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\nexport function formatOffset(offset, format) {\n const hours = Math.trunc(Math.abs(offset / 60)),\n minutes = Math.trunc(Math.abs(offset % 60)),\n sign = offset >= 0 ? \"+\" : \"-\";\n\n switch (format) {\n case \"short\":\n return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return `${sign}${hours}${minutes > 0 ? `:${minutes}` : \"\"}`;\n case \"techie\":\n return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\n\nexport function timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n\nexport const ianaRegex = /[A-Za-z_+-]{1,256}(:?\\/[A-Za-z_+-]{1,256}(\\/[A-Za-z_+-]{1,256})?)?/;\n","import * as Formats from \"./formats.js\";\nimport { pick } from \"./util.js\";\n\nfunction stringify(obj) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n}\n\n/**\n * @private\n */\n\nexport const monthsLong = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\n\nexport const monthsShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n];\n\nexport const monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nexport function months(length) {\n switch (length) {\n case \"narrow\":\n return monthsNarrow;\n case \"short\":\n return monthsShort;\n case \"long\":\n return monthsLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\n\nexport const weekdaysLong = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\"\n];\n\nexport const weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nexport const weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nexport function weekdays(length) {\n switch (length) {\n case \"narrow\":\n return weekdaysNarrow;\n case \"short\":\n return weekdaysShort;\n case \"long\":\n return weekdaysLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\n\nexport const meridiems = [\"AM\", \"PM\"];\n\nexport const erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nexport const erasShort = [\"BC\", \"AD\"];\n\nexport const erasNarrow = [\"B\", \"A\"];\n\nexport function eras(length) {\n switch (length) {\n case \"narrow\":\n return erasNarrow;\n case \"short\":\n return erasShort;\n case \"long\":\n return erasLong;\n default:\n return null;\n }\n}\n\nexport function meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nexport function weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\n\nexport function monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\n\nexport function eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nexport function formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"]\n };\n\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n default: // fall through\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow\n ? singular\n ? lilUnits[1]\n : lilUnits[2] || lilUnits[1]\n : singular\n ? units[unit][0]\n : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nexport function formatString(knownFormat) {\n // these all have the offsets removed because we don't have access to them\n // without all the intl stuff this is backfilling\n const filtered = pick(knownFormat, [\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n \"hour12\"\n ]),\n key = stringify(filtered),\n dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n switch (key) {\n case stringify(Formats.DATE_SHORT):\n return \"M/d/yyyy\";\n case stringify(Formats.DATE_MED):\n return \"LLL d, yyyy\";\n case stringify(Formats.DATE_MED_WITH_WEEKDAY):\n return \"EEE, LLL d, yyyy\";\n case stringify(Formats.DATE_FULL):\n return \"LLLL d, yyyy\";\n case stringify(Formats.DATE_HUGE):\n return \"EEEE, LLLL d, yyyy\";\n case stringify(Formats.TIME_SIMPLE):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_SECONDS):\n return \"h:mm:ss a\";\n case stringify(Formats.TIME_WITH_SHORT_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_LONG_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_24_SIMPLE):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_SECONDS):\n return \"HH:mm:ss\";\n case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_LONG_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.DATETIME_SHORT):\n return \"M/d/yyyy, h:mm a\";\n case stringify(Formats.DATETIME_MED):\n return \"LLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL):\n return \"LLLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_HUGE):\n return dateTimeHuge;\n case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):\n return \"M/d/yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_SECONDS):\n return \"LLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):\n return \"EEE, d LLL yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL_WITH_SECONDS):\n return \"LLLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):\n return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n default:\n return dateTimeHuge;\n }\n}\n","import * as English from \"./english.js\";\nimport * as Formats from \"./formats.js\";\nimport { hasFormatToParts, padStart } from \"./util.js\";\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\n\nconst macroTokenToFormatOpts = {\n D: Formats.DATE_SHORT,\n DD: Formats.DATE_MED,\n DDD: Formats.DATE_FULL,\n DDDD: Formats.DATE_HUGE,\n t: Formats.TIME_SIMPLE,\n tt: Formats.TIME_WITH_SECONDS,\n ttt: Formats.TIME_WITH_SHORT_OFFSET,\n tttt: Formats.TIME_WITH_LONG_OFFSET,\n T: Formats.TIME_24_SIMPLE,\n TT: Formats.TIME_24_WITH_SECONDS,\n TTT: Formats.TIME_24_WITH_SHORT_OFFSET,\n TTTT: Formats.TIME_24_WITH_LONG_OFFSET,\n f: Formats.DATETIME_SHORT,\n ff: Formats.DATETIME_MED,\n fff: Formats.DATETIME_FULL,\n ffff: Formats.DATETIME_HUGE,\n F: Formats.DATETIME_SHORT_WITH_SECONDS,\n FF: Formats.DATETIME_MED_WITH_SECONDS,\n FFF: Formats.DATETIME_FULL_WITH_SECONDS,\n FFFF: Formats.DATETIME_HUGE_WITH_SECONDS\n};\n\n/**\n * @private\n */\n\nexport default class Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n\n static parseFormat(fmt) {\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({ literal: false, val: currentFull });\n }\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n\n return splits;\n }\n\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTime(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTimeParts(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.formatToParts();\n }\n\n resolvedOptions(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.resolvedOptions();\n }\n\n num(n, p = 0) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n const opts = Object.assign({}, this.opts);\n\n if (p > 0) {\n opts.padTo = p;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n }\n\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter =\n this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\" && hasFormatToParts(),\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = opts => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () =>\n knownEnglish\n ? English.meridiemForDateTime(dt)\n : string({ hour: \"numeric\", hour12: true }, \"dayperiod\"),\n month = (length, standalone) =>\n knownEnglish\n ? English.monthForDateTime(dt, length)\n : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n weekday = (length, standalone) =>\n knownEnglish\n ? English.weekdayForDateTime(dt, length)\n : string(\n standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n \"weekday\"\n ),\n maybeMacro = token => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = length =>\n knownEnglish ? English.eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n tokenToString = token => {\n // Where possible: http://cldr.unicode.org/translation/date-time#TOC-Stand-Alone-vs.-Format-Styles\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n case \"ZZ\":\n // like +06:00\n return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n case \"ZZZ\":\n // like +0600\n return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter\n ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter\n ? string({ month: \"2-digit\" }, \"month\")\n : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter\n ? string({ year: \"2-digit\" }, \"year\")\n : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n\n formatDurationFromString(dur, fmt) {\n const tokenToField = token => {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = lildur => token => {\n const mapped = tokenToField(token);\n if (mapped) {\n return this.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(\n (found, { literal, val }) => (literal ? found : found.concat(val)),\n []\n ),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter(t => t));\n return stringifyTokens(tokens, tokenToString(collapsed));\n }\n}\n","export default class Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n","/* eslint no-unused-vars: \"off\" */\nimport { ZoneIsAbstractError } from \"./errors.js\";\n\n/**\n * @interface\n */\nexport default class Zone {\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get type() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n get name() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n get universal() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */\n get isValid() {\n throw new ZoneIsAbstractError();\n }\n}\n","import { formatOffset, parseZoneInfo, hasIntl } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * Represents the local zone for this Javascript environment.\n * @implements {Zone}\n */\nexport default class LocalZone extends Zone {\n /**\n * Get a singleton instance of the local zone\n * @return {LocalZone}\n */\n static get instance() {\n if (singleton === null) {\n singleton = new LocalZone();\n }\n return singleton;\n }\n\n /** @override **/\n get type() {\n return \"local\";\n }\n\n /** @override **/\n get name() {\n if (hasIntl()) {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n } else return \"local\";\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"local\";\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import { formatOffset, parseZoneInfo, isUndefined, ianaRegex, objToLocalTS } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nconst matchingRegex = RegExp(`^${ianaRegex.source}$`);\n\nlet dtfCache = {};\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n });\n }\n return dtfCache[zone];\n}\n\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n};\n\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed;\n return [fYear, fMonth, fDay, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n const formatted = dtf.formatToParts(date),\n filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const { type, value } = formatted[i],\n pos = typeToPos[type];\n\n if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\n\nlet ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nexport default class IANAZone extends Zone {\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n static create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n return ianaZoneCache[name];\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Fantasia/Castle\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return !!(s && s.match(matchingRegex));\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n // Etc/GMT+8 -> -480\n /** @ignore */\n static parseGMTOffset(specifier) {\n if (specifier) {\n const match = specifier.match(/^Etc\\/GMT([+-]\\d{1,2})$/i);\n if (match) {\n return -60 * parseInt(match[1]);\n }\n }\n return null;\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /** @override **/\n get type() {\n return \"iana\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n const date = new Date(ts),\n dtf = makeDTF(this.name),\n [year, month, day, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date),\n // work around https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /** @override **/\n get isValid() {\n return this.valid;\n }\n}\n","import { formatOffset, signedOffset } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nexport default class FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /** @override **/\n get type() {\n return \"fixed\";\n }\n\n /** @override **/\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n /** @override **/\n offsetName() {\n return this.name;\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /** @override **/\n get universal() {\n return true;\n }\n\n /** @override **/\n offset() {\n return this.fixed;\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import Zone from \"../zone.js\";\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nexport default class InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n","/**\n * @private\n */\n\nimport Zone from \"../zone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport InvalidZone from \"../zones/invalidZone.js\";\n\nimport { isUndefined, isString, isNumber } from \"./util.js\";\n\nexport function normalizeZone(input, defaultZone) {\n let offset;\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"local\") return defaultZone;\n else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n else if ((offset = IANAZone.parseGMTOffset(input)) != null) {\n // handle Etc/GMT-4, which V8 chokes on\n return FixedOffsetZone.instance(offset);\n } else if (IANAZone.isValidSpecifier(lowered)) return IANAZone.create(input);\n else return FixedOffsetZone.parseSpecifier(lowered) || new InvalidZone(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && input.offset && typeof input.offset === \"number\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n","import LocalZone from \"./zones/localZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport Locale from \"./impl/locale.js\";\n\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nlet now = () => Date.now(),\n defaultZone = null, // not setting this directly to LocalZone.instance bc loading order issues\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n throwOnInvalid = false;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nexport default class Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Get the default time zone to create DateTimes in.\n * @type {string}\n */\n static get defaultZoneName() {\n return Settings.defaultZone.name;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * @type {string}\n */\n static set defaultZoneName(z) {\n if (!z) {\n defaultZone = null;\n } else {\n defaultZone = normalizeZone(z);\n }\n }\n\n /**\n * Get the default time zone object to create DateTimes in. Does not affect existing instances.\n * @type {Zone}\n */\n static get defaultZone() {\n return defaultZone || LocalZone.instance;\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n }\n}\n","import { hasFormatToParts, hasIntl, padStart, roundTo, hasRelative } from \"./util.js\";\nimport * as English from \"./english.js\";\nimport Settings from \"../settings.js\";\nimport DateTime from \"../datetime.js\";\nimport Formatter from \"./formatter.js\";\n\nlet intlDTCache = {};\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlNumCache = {};\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\n\nlet intlRelCache = {};\nfunction getCachedRTF(locString, opts = {}) {\n const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else if (hasIntl()) {\n const computedSys = new Intl.DateTimeFormat().resolvedOptions().locale;\n // node sometimes defaults to \"und\". Override that because that is dumb\n sysLocaleCache = !computedSys || computedSys === \"und\" ? \"en-US\" : computedSys;\n return sysLocaleCache;\n } else {\n sysLocaleCache = \"en-US\";\n return sysLocaleCache;\n }\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n const smaller = localeStr.substring(0, uIndex);\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n } catch (e) {\n options = getCachedDTF(smaller).resolvedOptions();\n }\n\n const { numberingSystem, calendar } = options;\n // return the smaller one so that we can append the calendar and numbering overrides to it\n return [smaller, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (hasIntl()) {\n if (outputCalendar || numberingSystem) {\n localeStr += \"-u\";\n\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n } else {\n return [];\n }\n}\n\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2016, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction listStuff(loc, length, defaultOK, englishFn, intlFn) {\n const mode = loc.listingMode(defaultOK);\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return (\n loc.numberingSystem === \"latn\" ||\n !loc.locale ||\n loc.locale.startsWith(\"en\") ||\n (hasIntl() && new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\")\n );\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n if (!forceSimple && hasIntl()) {\n const intlOpts = { useGrouping: false };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n this.hasIntl = hasIntl();\n\n let z;\n if (dt.zone.universal && this.hasIntl) {\n // Chromium doesn't support fixed-offset zones like Etc/GMT+8 in its formatter,\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=364374.\n // So we have to make do. Two cases:\n // 1. The format options tell us to show the zone. We can't do that, so the best\n // we can do is format the date in UTC.\n // 2. The format options don't tell us to show the zone. Then we can adjust them\n // the time and tell the formatter to show it to us in UTC, so that the time is right\n // and the bad zone doesn't show up.\n // We can clean all this up when Chrome fixes this.\n z = \"UTC\";\n if (opts.timeZoneName) {\n this.dt = dt;\n } else {\n this.dt = dt.offset === 0 ? dt : DateTime.fromMillis(dt.ts + dt.offset * 60 * 1000);\n }\n } else if (dt.zone.type === \"local\") {\n this.dt = dt;\n } else {\n this.dt = dt;\n z = dt.zone.name;\n }\n\n if (this.hasIntl) {\n const intlOpts = Object.assign({}, this.opts);\n if (z) {\n intlOpts.timeZone = z;\n }\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n }\n\n format() {\n if (this.hasIntl) {\n return this.dtf.format(this.dt.toJSDate());\n } else {\n const tokenFormat = English.formatString(this.opts),\n loc = Locale.create(\"en-US\");\n return Formatter.create(loc).formatDateTimeFromString(this.dt, tokenFormat);\n }\n }\n\n formatToParts() {\n if (this.hasIntl && hasFormatToParts()) {\n return this.dtf.formatToParts(this.dt.toJSDate());\n } else {\n // This is kind of a cop out. We actually could do this for English. However, we couldn't do it for intl strings\n // and IMO it's too weird to have an uncanny valley like that\n return [];\n }\n }\n\n resolvedOptions() {\n if (this.hasIntl) {\n return this.dtf.resolvedOptions();\n } else {\n return {\n locale: \"en-US\",\n numberingSystem: \"latn\",\n outputCalendar: \"gregory\"\n };\n }\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = Object.assign({ style: \"long\" }, opts);\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return English.formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\n\n/**\n * @private\n */\n\nexport default class Locale {\n static fromOpts(opts) {\n return Locale.create(opts.locale, opts.numberingSystem, opts.outputCalendar, opts.defaultToEN);\n }\n\n static create(locale, numberingSystem, outputCalendar, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale,\n // the system locale is useful for human readable strings but annoying for parsing/formatting known formats\n localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale()),\n numberingSystemR = numberingSystem || Settings.defaultNumberingSystem,\n outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n return new Locale(localeR, numberingSystemR, outputCalendarR, specifiedLocale);\n }\n\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n }\n\n static fromObject({ locale, numberingSystem, outputCalendar } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar);\n }\n\n constructor(locale, numbering, outputCalendar, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n this.weekdaysCache = { format: {}, standalone: {} };\n this.monthsCache = { format: {}, standalone: {} };\n this.meridiemCache = null;\n this.eraCache = {};\n\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n\n listingMode(defaultOK = true) {\n const intl = hasIntl(),\n hasFTP = intl && hasFormatToParts(),\n isActuallyEn = this.isEnglish(),\n hasNoWeirdness =\n (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n\n if (!hasFTP && !(isActuallyEn && hasNoWeirdness) && !defaultOK) {\n return \"error\";\n } else if (!hasFTP || (isActuallyEn && hasNoWeirdness)) {\n return \"en\";\n } else {\n return \"intl\";\n }\n }\n\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(\n alts.locale || this.specifiedLocale,\n alts.numberingSystem || this.numberingSystem,\n alts.outputCalendar || this.outputCalendar,\n alts.defaultToEN || false\n );\n }\n }\n\n redefaultToEN(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: true }));\n }\n\n redefaultToSystem(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: false }));\n }\n\n months(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.months, () => {\n const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n this.monthsCache[formatStr][length] = mapMonths(dt => this.extract(dt, intl, \"month\"));\n }\n return this.monthsCache[formatStr][length];\n });\n }\n\n weekdays(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.weekdays, () => {\n const intl = format\n ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n : { weekday: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays(dt =>\n this.extract(dt, intl, \"weekday\")\n );\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n\n meridiems(defaultOK = true) {\n return listStuff(\n this,\n undefined,\n defaultOK,\n () => English.meridiems,\n () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = { hour: \"numeric\", hour12: true };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n dt => this.extract(dt, intl, \"dayperiod\")\n );\n }\n\n return this.meridiemCache;\n }\n );\n }\n\n eras(length, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.eras, () => {\n const intl = { era: length };\n\n // This is utter bullshit. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map(dt =>\n this.extract(dt, intl, \"era\")\n );\n }\n\n return this.eraCache[length];\n });\n }\n\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find(m => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n\n isEnglish() {\n return (\n this.locale === \"en\" ||\n this.locale.toLowerCase() === \"en-us\" ||\n (hasIntl() && new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\"))\n );\n }\n\n equals(other) {\n return (\n this.locale === other.locale &&\n this.numberingSystem === other.numberingSystem &&\n this.outputCalendar === other.outputCalendar\n );\n }\n}\n","import {\n untruncateYear,\n signedOffset,\n parseInteger,\n parseMillis,\n ianaRegex,\n isUndefined\n} from \"./util.js\";\nimport * as English from \"./english.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n return m =>\n extractors\n .reduce(\n ([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [Object.assign(mergedVals, val), mergedZone || zone, next];\n },\n [{}, null, 1]\n )\n .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\n\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/,\n isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,30}))?)?)?/,\n isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${offsetRegex.source}?`),\n isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`),\n isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/,\n isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/,\n isoOrdinalRegex = /(\\d{4})-?(\\d{3})/,\n extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\"),\n extractISOOrdinalData = simpleParse(\"year\", \"ordinal\"),\n sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/, // dumbed-down version of the ISO one\n sqlTimeRegex = RegExp(\n `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n ),\n sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1)\n };\n\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n const item = {\n hour: int(match, cursor, 0),\n minute: int(match, cursor + 1, 0),\n second: int(match, cursor + 2, 0),\n millisecond: parseMillis(match[cursor + 3])\n };\n\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO duration parsing\n\nconst isoDuration = /^-?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)?)?)$/;\n\nfunction extractISODuration(match) {\n const [\n s,\n yearStr,\n monthStr,\n weekStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr,\n millisecondsStr\n ] = match;\n\n const hasNegativePrefix = s[0] === \"-\";\n\n const maybeNegate = num => (num && hasNegativePrefix ? -num : num);\n\n return [\n {\n years: maybeNegate(parseInteger(yearStr)),\n months: maybeNegate(parseInteger(monthStr)),\n weeks: maybeNegate(parseInteger(weekStr)),\n days: maybeNegate(parseInteger(dayStr)),\n hours: maybeNegate(parseInteger(hourStr)),\n minutes: maybeNegate(parseInteger(minuteStr)),\n seconds: maybeNegate(parseInteger(secondStr)),\n milliseconds: maybeNegate(parseMillis(millisecondsStr))\n }\n ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\n\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: English.monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr)\n };\n\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday =\n weekdayStr.length > 3\n ? English.weekdaysLong.indexOf(weekdayStr) + 1\n : English.weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 = /^(?:(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)))$/;\n\nfunction extractRFC2822(match) {\n const [\n ,\n weekdayStr,\n dayStr,\n monthStr,\n yearStr,\n hourStr,\n minuteStr,\n secondStr,\n obsOffset,\n milOffset,\n offHourStr,\n offMinuteStr\n ] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, \" \")\n .replace(/(\\s\\s+)/g, \" \")\n .trim();\n}\n\n// http date\n\nconst rfc1123 = /^(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$/,\n rfc850 = /^(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$/,\n ascii = /^(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})$/;\n\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n extractISOWeekData,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOOrdinalDataAndTime = combineExtractors(extractISOOrdinalData, extractISOTime);\nconst extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset);\n\n/**\n * @private\n */\n\nexport function parseISODate(s) {\n return parse(\n s,\n [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDataAndTime],\n [isoTimeCombinedRegex, extractISOTimeAndOffset]\n );\n}\n\nexport function parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nexport function parseHTTPDate(s) {\n return parse(\n s,\n [rfc1123, extractRFC1123Or850],\n [rfc850, extractRFC1123Or850],\n [ascii, extractASCII]\n );\n}\n\nexport function parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOYmdTimeOffsetAndIANAZone = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\nexport function parseSQL(s) {\n return parse(\n s,\n [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeOffsetAndIANAZone],\n [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n );\n}\n","import { InvalidArgumentError, InvalidDurationError, InvalidUnitError } from \"./errors.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Locale from \"./impl/locale.js\";\nimport { parseISODuration } from \"./impl/regexParser.js\";\nimport {\n asNumber,\n hasOwnProperty,\n isNumber,\n isUndefined,\n normalizeObject,\n roundTo\n} from \"./impl/util.js\";\nimport Settings from \"./settings.js\";\n\nconst INVALID = \"Invalid Duration\";\n\n// unit conversion constants\nconst lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000\n },\n hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n minutes: { seconds: 60, milliseconds: 60 * 1000 },\n seconds: { milliseconds: 1000 }\n },\n casualMatrix = Object.assign(\n {\n years: {\n quarters: 4,\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n seconds: 91 * 24 * 60 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n ),\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = Object.assign(\n {\n years: {\n quarters: 4,\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: (daysInYearAccurate * 24) / 4,\n minutes: (daysInYearAccurate * 24 * 60) / 4,\n seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n );\n\n// units ordered by size\nconst orderedUnits = [\n \"years\",\n \"quarters\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n];\n\nconst reverseUnits = orderedUnits.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : Object.assign({}, dur.values, alts.values || {}),\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy\n };\n return new Duration(conf);\n}\n\nfunction antiTrunc(n) {\n return n < 0 ? Math.floor(n) : Math.ceil(n);\n}\n\n// NB: mutates parameters\nfunction convert(matrix, fromMap, fromUnit, toMap, toUnit) {\n const conv = matrix[toUnit][fromUnit],\n raw = fromMap[fromUnit] / conv,\n sameSign = Math.sign(raw) === Math.sign(toMap[toUnit]),\n // ok, so this is wild, but see the matrix in the tests\n added =\n !sameSign && toMap[toUnit] !== 0 && Math.abs(raw) <= 1 ? antiTrunc(raw) : Math.trunc(raw);\n toMap[toUnit] += added;\n fromMap[fromUnit] -= added * conv;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n reverseUnits.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n convert(matrix, vals, previous, vals, current);\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime.plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration.years}, {@link Duration.months}, {@link Duration.weeks}, {@link Duration.days}, {@link Duration.hours}, {@link Duration.minutes}, {@link Duration.seconds}, {@link Duration.milliseconds} accessors.\n * * **Configuration** See {@link Duration.locale} and {@link Duration.numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration.plus}, {@link Duration.minus}, {@link Duration.normalize}, {@link Duration.set}, {@link Duration.reconfigure}, {@link Duration.shiftTo}, and {@link Duration.negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration.as}, {@link Duration.toISO}, {@link Duration.toFormat}, and {@link Duration.toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nexport default class Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = accurate ? accurateMatrix : casualMatrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject(Object.assign({ milliseconds: count }, opts));\n }\n\n /**\n * Create a Duration from a Javascript object with keys like 'years' and 'hours.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {string} [obj.locale='en-US'] - the locale to use\n * @param {string} obj.numberingSystem - the numbering system to use\n * @param {string} [obj.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromObject(obj) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\n `Duration.fromObject: argument expected to be an object, got ${\n obj === null ? \"null\" : typeof obj\n }`\n );\n }\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit, [\n \"locale\",\n \"numberingSystem\",\n \"conversionAccuracy\",\n \"zone\" // a bit of debt; it's super inconvenient internally not to be able to blindly pass this\n ]),\n loc: Locale.fromObject(obj),\n conversionAccuracy: obj.conversionAccuracy\n });\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n const obj = Object.assign(parsed, opts);\n return Duration.fromObject(obj);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({ invalid });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\"\n }[unit ? unit.toLowerCase() : unit];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return (o && o.isLuxonDuration) || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * The duration will be converted to the set of units in the format string using {@link Duration.shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = Object.assign({}, opts, {\n floor: opts.round !== false && opts.floor !== false\n });\n return this.isValid\n ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a Javascript object with this Duration's values.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.values);\n\n if (opts.includeConfig) {\n base.conversionAccuracy = this.conversionAccuracy;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n valueOf() {\n return this.as(\"milliseconds\");\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration),\n result = {};\n\n for (const k of orderedUnits) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone(this, { values: result }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit((x, u) => u === \"hour\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone(this, { values: result }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).years //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).months //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).days //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const mixed = Object.assign(this.values, normalizeObject(values, Duration.normalizeUnit, []));\n return clone(this, { values: mixed });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({ locale, numberingSystem, conversionAccuracy } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem }),\n opts = { loc };\n\n if (conversionAccuracy) {\n opts.conversionAccuracy = conversionAccuracy;\n }\n\n return clone(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map(u => Duration.normalizeUnit(u));\n\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n\n for (const k of orderedUnits) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = own - i; // we'd like to absorb these fractions in another unit\n\n // plus anything further down the chain that should be rolled up in to this\n for (const down in vals) {\n if (orderedUnits.indexOf(down) > orderedUnits.indexOf(k)) {\n convert(this.matrix, vals, down, built, k);\n }\n }\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] +=\n key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n return clone(this, { values: built }, true).normalize();\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = -this.values[k];\n }\n return clone(this, { values: negated }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n for (const u of orderedUnits) {\n if (this.values[u] !== other.values[u]) {\n return false;\n }\n }\n return true;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDuration(durationish) {\n if (isNumber(durationish)) {\n return Duration.fromMillis(durationish);\n } else if (Duration.isDuration(durationish)) {\n return durationish;\n } else if (typeof durationish === \"object\") {\n return Duration.fromObject(durationish);\n } else {\n throw new InvalidArgumentError(\n `Unknown duration argument ${durationish} of type ${typeof durationish}`\n );\n }\n}\n","import DateTime, { friendlyDateTime } from \"./datetime.js\";\nimport Duration, { friendlyDuration } from \"./duration.js\";\nimport Settings from \"./settings.js\";\nimport { InvalidArgumentError, InvalidIntervalError } from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\n \"end before start\",\n `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n );\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link fromDateTimes}, {@link after}, {@link before}, or {@link fromISO}.\n * * **Accessors** Use {@link start} and {@link end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link count}, {@link length}, {@link hasSame}, {@link contains}, {@link isAfter}, or {@link isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link set}, {@link splitAt}, {@link splitBy}, {@link divideEqually}, {@link merge}, {@link xor}, {@link union}, {@link intersection}, or {@link difference}.\n * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs}.\n * * **Output** To convert the Interval into other representations, see {@link toString}, {@link toISO}, {@link toISODate}, {@link toISOTime}, {@link toFormat}, and {@link toDuration}.\n */\nexport default class Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({ invalid });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n\n const validateError = validateStartEnd(builtStart, builtEnd);\n\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `<start>/<end>`, `<start>/<duration>`, and `<duration>/<end>` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime.fromISO} and optionally {@link Duration.fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n let start, startIsValid;\n try {\n start = DateTime.fromISO(s, opts);\n startIsValid = start.isValid;\n } catch (e) {\n startIsValid = false;\n }\n\n let end, endIsValid;\n try {\n end = DateTime.fromISO(e, opts);\n endIsValid = end.isValid;\n } catch (e) {\n endIsValid = false;\n }\n\n if (startIsValid && endIsValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (startIsValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (endIsValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return (o && o.isLuxonInterval) || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @return {number}\n */\n count(unit = \"milliseconds\") {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit),\n end = this.end.startOf(unit);\n return Math.floor(end.diff(start, unit).get(unit)) + 1;\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({ start, end } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...[DateTime]} dateTimes - the unit of time to count.\n * @return {[Interval]}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes\n .map(friendlyDateTime)\n .filter(d => this.contains(d))\n .sort(),\n results = [];\n let { s } = this,\n i = 0;\n\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {[Interval]}\n */\n splitBy(duration) {\n const dur = friendlyDuration(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n let { s } = this,\n added,\n next;\n\n const results = [];\n while (s < this.e) {\n added = s.plus(dur);\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {[Interval]}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Return whether this Interval engulfs the start and end of the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s > e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static merge(intervals) {\n const [found, final] = intervals.sort((a, b) => a.s - b.s).reduce(\n ([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n },\n [[], null]\n );\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map(i => [{ time: i.s, type: \"s\" }, { time: i.e, type: \"e\" }]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {[Interval]}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals))\n .map(i => this.intersection(i))\n .filter(i => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format string.\n * @param {string} dateFormat - the format string. This string formats the start and end time. See {@link DateTime.toFormat} for details.\n * @param {Object} opts - options\n * @param {string} [opts.separator = ' – '] - a separator to place between the start and end representations\n * @return {string}\n */\n toFormat(dateFormat, { separator = \" – \" } = {}) {\n if (!this.isValid) return INVALID;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n","import DateTime from \"./datetime.js\";\nimport Settings from \"./settings.js\";\nimport Locale from \"./impl/locale.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nimport { hasFormatToParts, hasIntl, hasRelative } from \"./impl/util.js\";\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nexport default class Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.local()\n .setZone(zone)\n .set({ month: 12 });\n\n return !zone.universal && proto.offset !== proto.set({ month: 6 }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidSpecifier(zone) && IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone.isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n * @return {[string]}\n */\n static months(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {[string]}\n */\n static monthsFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {[string]}\n */\n static weekdays(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link weekdays}\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @return {[string]}\n */\n static weekdaysFormat(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {[string]}\n */\n static meridiems({ locale = null } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {[string]}\n */\n static eras(length = \"short\", { locale = null } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, timezone support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `zones`: whether this environment supports IANA timezones\n * * `intlTokens`: whether this environment supports internationalized token-based formatting/parsing\n * * `intl`: whether this environment supports general internationalization\n * * `relative`: whether this environment supports relative time formatting\n * @example Info.features() //=> { intl: true, intlTokens: false, zones: true, relative: false }\n * @return {Object}\n */\n static features() {\n let intl = false,\n intlTokens = false,\n zones = false,\n relative = false;\n\n if (hasIntl()) {\n intl = true;\n intlTokens = hasFormatToParts();\n relative = hasRelative();\n\n try {\n zones =\n new Intl.DateTimeFormat(\"en\", { timeZone: \"America/New_York\" }).resolvedOptions()\n .timeZone === \"America/New_York\";\n } catch (e) {\n zones = false;\n }\n }\n\n return { intl, intlTokens, zones, relative };\n }\n}\n","import Duration from \"../duration.js\";\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = dt =>\n dt\n .toUTC(0, { keepLocalTime: true })\n .startOf(\"day\")\n .valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [\n [\"years\", (a, b) => b.year - a.year],\n [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n [\n \"weeks\",\n (a, b) => {\n const days = dayDiff(a, b);\n return (days - (days % 7)) / 7;\n }\n ],\n [\"days\", dayDiff]\n ];\n\n const results = {};\n let lowestOrder, highWater;\n\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n\n let delta = differ(cursor, later);\n highWater = cursor.plus({ [unit]: delta });\n\n if (highWater > later) {\n cursor = cursor.plus({ [unit]: delta - 1 });\n delta -= 1;\n } else {\n cursor = highWater;\n }\n\n results[unit] = delta;\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nexport default function(earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n const remainingMillis = later - cursor;\n\n const lowerOrderUnits = units.filter(\n u => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n );\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({ [lowestOrder]: 1 });\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n const duration = Duration.fromObject(Object.assign(results, opts));\n\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts)\n .shiftTo(...lowerOrderUnits)\n .plus(duration);\n } else {\n return duration;\n }\n}\n","const numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\"\n};\n\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881]\n};\n\n// eslint-disable-next-line\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nexport function parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\nexport function digitRegex({ numberingSystem }, append = \"\") {\n return new RegExp(`${numberingSystems[numberingSystem || \"latn\"]}${append}`);\n}\n","import { parseMillis, isUndefined, untruncateYear, signedOffset, hasOwnProperty } from \"./util.js\";\nimport Formatter from \"./formatter.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport DateTime from \"../datetime.js\";\nimport { digitRegex, parseDigits } from \"./digits.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = i => i) {\n return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nconst NBSP = String.fromCharCode(160);\nconst spaceOrNBSP = `( |${NBSP})`;\nconst spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, \"g\");\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n // make space and non breakable space characters interchangeable\n return s.replace(/\\./g, \"\\\\.?\").replace(spaceOrNBSPRegExp, spaceOrNBSP);\n}\n\nfunction stripInsensitivities(s) {\n return s\n .replace(/\\./g, \"\") // ignore dots that were made optional\n .replace(spaceOrNBSPRegExp, \" \") // interchange space and nbsp\n .toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) =>\n strings.findIndex(i => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex\n };\n }\n}\n\nfunction offset(regex, groups) {\n return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n // eslint-disable-next-line no-useless-escape\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = t => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n unitate = t => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\", false), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\", false), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true, false), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true, false), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false, false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false, false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false, false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false, false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true, false), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true, false), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n default:\n return literal(t);\n }\n };\n\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP\n };\n\n unit.token = token;\n\n return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\"\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\"\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\"\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\"\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour: {\n numeric: \"h\",\n \"2-digit\": \"hh\"\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\"\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\"\n }\n};\n\nfunction tokenForPart(part, locale, formatOpts) {\n const { type, value } = part;\n\n if (type === \"literal\") {\n return {\n literal: true,\n val: value\n };\n }\n\n const style = formatOpts[type];\n\n let val = partTypeStyleToTokenVal[type];\n if (typeof val === \"object\") {\n val = val[style];\n }\n\n if (val) {\n return {\n literal: false,\n val\n };\n }\n\n return undefined;\n}\n\nfunction buildRegex(units) {\n const re = units.map(u => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n const toField = token => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n\n let zone;\n if (!isUndefined(matches.Z)) {\n zone = new FixedOffsetZone(matches.Z);\n } else if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n } else {\n zone = null;\n }\n\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n\n return [vals, zone];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n\n return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n\n if (!formatOpts) {\n return token;\n }\n\n const formatter = Formatter.create(locale, formatOpts);\n const parts = formatter.formatDateTimeParts(getDummyDateTime());\n\n const tokens = parts.map(p => tokenForPart(p, locale, formatOpts));\n\n if (tokens.includes(undefined)) {\n return token;\n }\n\n return tokens;\n}\n\nfunction expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map(t => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nexport function explainFromTokens(locale, input, format) {\n const tokens = expandMacroTokens(Formatter.parseFormat(format), locale),\n units = tokens.map(t => unitForToken(t, locale)),\n disqualifyingUnit = units.find(t => t.invalidReason);\n\n if (disqualifyingUnit) {\n return { input, tokens, invalidReason: disqualifyingUnit.invalidReason };\n } else {\n const [regexString, handlers] = buildRegex(units),\n regex = RegExp(regexString, \"i\"),\n [rawMatches, matches] = match(input, regex, handlers),\n [result, zone] = matches ? dateTimeFromMatches(matches) : [null, null];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\n \"Can't include meridiem when specifying 24-hour format\"\n );\n }\n return { input, tokens, regex, rawMatches, matches, result, zone };\n }\n}\n\nexport function parseFromTokens(locale, input, format) {\n const { result, zone, invalidReason } = explainFromTokens(locale, input, format);\n return [result, zone, invalidReason];\n}\n","import {\n integerBetween,\n isLeapYear,\n timeObject,\n daysInYear,\n daysInMonth,\n weeksInWeekYear,\n isInteger\n} from \"./util.js\";\nimport Invalid from \"./invalid.js\";\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\n \"unit out of range\",\n `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n );\n}\n\nfunction dayOfWeek(year, month, day) {\n const js = new Date(Date.UTC(year, month - 1, day)).getUTCDay();\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex(i => i < ordinal),\n day = ordinal - table[month0];\n return { month: month0 + 1, day };\n}\n\n/**\n * @private\n */\n\nexport function gregorianToWeek(gregObj) {\n const { year, month, day } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = dayOfWeek(year, month, day);\n\n let weekNumber = Math.floor((ordinal - weekday + 10) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear);\n } else if (weekNumber > weeksInWeekYear(year)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return Object.assign({ weekYear, weekNumber, weekday }, timeObject(gregObj));\n}\n\nexport function weekToGregorian(weekData) {\n const { weekYear, weekNumber, weekday } = weekData,\n weekdayOfJan4 = dayOfWeek(weekYear, 1, 4),\n yearInDays = daysInYear(weekYear);\n\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 3,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n const { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(weekData));\n}\n\nexport function gregorianToOrdinal(gregData) {\n const { year, month, day } = gregData,\n ordinal = computeOrdinal(year, month, day);\n\n return Object.assign({ year, ordinal }, timeObject(gregData));\n}\n\nexport function ordinalToGregorian(ordinalData) {\n const { year, ordinal } = ordinalData,\n { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(ordinalData));\n}\n\nexport function hasInvalidWeekData(obj) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(obj.weekNumber, 1, weeksInWeekYear(obj.weekYear)),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.week);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\n\nexport function hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\n\nexport function hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\n\nexport function hasInvalidTimeData(obj) {\n const { hour, minute, second, millisecond } = obj;\n const validHour =\n integerBetween(hour, 0, 23) ||\n (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n","import Duration, { friendlyDuration } from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Settings from \"./settings.js\";\nimport Info from \"./info.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport {\n isUndefined,\n maybeArray,\n isDate,\n isNumber,\n bestBy,\n daysInMonth,\n daysInYear,\n isLeapYear,\n weeksInWeekYear,\n normalizeObject,\n roundTo,\n objToLocalTS\n} from \"./impl/util.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport diff from \"./impl/diff.js\";\nimport { parseRFC2822Date, parseISODate, parseHTTPDate, parseSQL } from \"./impl/regexParser.js\";\nimport { parseFromTokens, explainFromTokens } from \"./impl/tokenParser.js\";\nimport {\n gregorianToWeek,\n weekToGregorian,\n gregorianToOrdinal,\n ordinalToGregorian,\n hasInvalidGregorianData,\n hasInvalidWeekData,\n hasInvalidOrdinalData,\n hasInvalidTimeData\n} from \"./impl/conversions.js\";\nimport * as Formats from \"./impl/formats.js\";\nimport {\n InvalidArgumentError,\n ConflictingSpecificationError,\n InvalidUnitError,\n InvalidDateTimeError\n} from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid\n };\n return new DateTime(Object.assign({}, current, alts, { old: current }));\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n\n const d = new Date(ts);\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds()\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const oPre = inst.o,\n year = inst.c.year + Math.trunc(dur.years),\n month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3,\n c = Object.assign({}, inst.c, {\n year,\n month,\n day:\n Math.min(inst.c.day, daysInMonth(year, month)) +\n Math.trunc(dur.days) +\n Math.trunc(dur.weeks) * 7\n }),\n millisToAdd = Duration.fromObject({\n years: dur.years - Math.trunc(dur.years),\n quarters: dur.quarters - Math.trunc(dur.quarters),\n months: dur.months - Math.trunc(dur.months),\n weeks: dur.weeks - Math.trunc(dur.weeks),\n days: dur.days - Math.trunc(dur.days),\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n\n return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text) {\n const { setZone, zone } = opts;\n if (parsed && Object.keys(parsed).length !== 0) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(\n Object.assign(parsed, opts, {\n zone: interpretationZone,\n // setZone is a valid option in the calling methods, but not in fromObject\n setZone: undefined\n })\n );\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(\n new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n );\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid\n ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true\n }).formatDateTimeFromString(dt, format)\n : null;\n}\n\n// technical time formats (e.g. the time part of ISO 8601), take some options\n// and this commonizes their handling\nfunction toTechTimeFormat(\n dt,\n {\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset,\n includeZone = false,\n spaceZone = false,\n format = \"extended\"\n }\n) {\n let fmt = format === \"basic\" ? \"HHmm\" : \"HH:mm\";\n\n if (!suppressSeconds || dt.second !== 0 || dt.millisecond !== 0) {\n fmt += format === \"basic\" ? \"ss\" : \":ss\";\n if (!suppressMilliseconds || dt.millisecond !== 0) {\n fmt += \".SSS\";\n }\n }\n\n if ((includeZone || includeOffset) && spaceZone) {\n fmt += \" \";\n }\n\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += format === \"basic\" ? \"ZZZ\" : \"ZZ\";\n }\n\n return toTechFormat(dt, fmt);\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\n \"weekYear\",\n \"weekNumber\",\n \"weekday\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\"\n ],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\"\n }[unit.toLowerCase()];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, zone) {\n // assume we have the higher-order units\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zone.offset(tsNow),\n [ts, o] = objToTS(obj, offsetProvis, zone);\n\n return new DateTime({\n ts,\n zone,\n o\n });\n}\n\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = unit => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end\n .startOf(unit)\n .diff(start.startOf(unit), unit)\n .get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(0, opts.units[opts.units.length - 1]);\n}\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link local}, {@link utc}, and (most flexibly) {@link fromObject}. To create one from a standard string format, use {@link fromISO}, {@link fromHTTP}, and {@link fromRFC2822}. To create one from a custom string format, use {@link fromFormat}. To create one from a native JS date, use {@link fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link toObject}), use the {@link year}, {@link month},\n * {@link day}, {@link hour}, {@link minute}, {@link second}, {@link millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link weekYear}, {@link weekNumber}, and {@link weekday} accessors.\n * * **Configuration** See the {@link locale} and {@link numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link set}, {@link reconfigure}, {@link setZone}, {@link setLocale}, {@link plus}, {@link minus}, {@link endOf}, {@link startOf}, {@link toUTC}, and {@link toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link toRelative}, {@link toRelativeCalendar}, {@link toJSON}, {@link toISO}, {@link toHTTP}, {@link toObject}, {@link toRFC2822}, {@link toString}, {@link toLocaleString}, {@link toFormat}, {@link toMillis} and {@link toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nexport default class DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n\n let invalid =\n config.invalid ||\n (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n const ot = zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12) //~> 2017-03-12T00:00:00\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({ ts: Settings.now() });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n Settings.defaultZone\n );\n }\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765Z\n * @return {DateTime}\n */\n static utc(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({\n ts: Settings.now(),\n zone: FixedOffsetZone.utcInstance\n });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n FixedOffsetZone.utcInstance\n );\n }\n }\n\n /**\n * Create a DateTime from a Javascript Date object. Uses the default zone.\n * @param {Date} date - a Javascript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options)\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\n `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n );\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a Javascript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {string|Zone} [obj.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [obj.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} obj.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} obj.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @return {DateTime}\n */\n static fromObject(obj) {\n const zoneToUse = normalizeZone(obj.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zoneToUse.offset(tsNow),\n normalized = normalizeObject(obj, normalizeUnit, [\n \"zone\",\n \"locale\",\n \"outputCalendar\",\n \"numberingSystem\"\n ]),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber,\n loc = Locale.fromObject(obj);\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData\n ? hasInvalidWeekData(normalized)\n : containsOrdinal\n ? hasInvalidOrdinalData(normalized)\n : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData\n ? weekToGregorian(normalized)\n : containsOrdinal\n ? ordinalToGregorian(normalized)\n : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\n \"mismatched weekday\",\n `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n );\n }\n\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/parsing.html#table-of-tokens\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n }),\n [vals, parsedZone, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({ invalid });\n }\n }\n\n /**\n * Check if an object is a DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return (o && o.isLuxonDateTime) || false;\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.local().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.universal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return (\n this.offset > this.set({ month: 1 }).offset || this.offset > this.set({ month: 5 }).offset\n );\n }\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOpts(opts = {}) {\n const { locale, numberingSystem, calendar } = Formatter.create(\n this.loc.clone(opts),\n opts\n ).resolvedOptions(this);\n return { locale, numberingSystem, outputCalendar: calendar };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link plus}. You may wish to use {@link toLocal} and {@link toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, { ts: newTS, zone });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n return clone(this, { loc });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({ locale });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link reconfigure} and {@link setZone}.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const normalized = normalizeObject(values, normalizeUnit, []),\n settingWeekStuff =\n !isUndefined(normalized.weekYear) ||\n !isUndefined(normalized.weekNumber) ||\n !isUndefined(normalized.weekday);\n\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(Object.assign(gregorianToWeek(this.c), normalized));\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian(Object.assign(gregorianToOrdinal(this.c), normalized));\n } else {\n mixed = Object.assign(this.toObject(), normalized);\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, { ts, o });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.local().plus(123) //~> in 123 milliseconds\n * @example DateTime.local().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.local().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.local().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.local().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.local().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit) {\n if (!this.isValid) return this;\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n case \"milliseconds\":\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n o.weekday = 1;\n }\n\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'month', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit) {\n return this.isValid\n ? this.plus({ [unit]: 1 })\n .startOf(unit)\n .minus(1)\n : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options\n * @example DateTime.local().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.local().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.local().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.local().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param opts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @example DateTime.local().toLocaleString(); //=> 4/20/2017\n * @example DateTime.local().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString({ locale: 'en-gb' }); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.local().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.local().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.local().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.local().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.local().toLocaleString({ hour: '2-digit', minute: '2-digit', hour12: false }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(opts = Formats.DATE_SHORT) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTime(this)\n : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.local().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.local().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.local().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.local().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */\n toISO(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toISODate(opts)}T${this.toISOTime(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */\n toISODate({ format = \"extended\" } = {}) {\n let fmt = format === \"basic\" ? \"yyyyMMdd\" : \"yyyy-MM-dd\";\n if (this.year > 9999) {\n fmt = \"+\" + fmt;\n }\n\n return toTechFormat(this, fmt);\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n format = \"extended\"\n } = {}) {\n return toTechTimeFormat(this, {\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n format\n });\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime, always in UTC\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */\n toSQLDate() {\n return toTechFormat(this, \"yyyy-MM-dd\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.local().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.local().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.local().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({ includeOffset = true, includeZone = false } = {}) {\n return toTechTimeFormat(this, {\n includeOffset,\n includeZone,\n spaceZone: true\n });\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a Javascript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.local().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.c);\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a Javascript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\n this.invalid || otherDateTime.invalid,\n \"created by diffing an invalid DateTime\"\n );\n }\n\n const durOpts = Object.assign(\n { locale: this.locale, numberingSystem: this.numberingSystem },\n opts\n );\n\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.local(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @example DateTime.local().hasSame(otherDT, 'day'); //~> true if both the same calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit) {\n if (!this.isValid) return false;\n if (unit === \"millisecond\") {\n return this.valueOf() === otherDateTime.valueOf();\n } else {\n const inputMs = otherDateTime.valueOf();\n return this.startOf(unit) <= inputMs && inputMs <= this.endOf(unit);\n }\n }\n\n /**\n * Equality check\n * Two DateTimes are equal iff they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return (\n this.isValid &&\n other.isValid &&\n this.valueOf() === other.valueOf() &&\n this.zone.equals(other.zone) &&\n this.loc.equals(other.loc)\n );\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {boolean} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.local().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n * @example DateTime.local().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.local().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.local().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.local().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({ zone: this.zone }),\n padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n return diffRelative(\n base,\n this.plus(padding),\n Object.assign(options, {\n numeric: \"always\",\n units: [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"]\n })\n );\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.local().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.local().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n\n return diffRelative(\n options.base || DateTime.fromObject({ zone: this.zone }),\n this,\n Object.assign(options, {\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true\n })\n );\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return Formats.DATE_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return Formats.DATE_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'Fri, Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED_WITH_WEEKDAY() {\n return Formats.DATE_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return Formats.DATE_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return Formats.DATE_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return Formats.TIME_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return Formats.TIME_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return Formats.TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return Formats.TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return Formats.TIME_24_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return Formats.TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return Formats.TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return Formats.TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return Formats.DATETIME_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return Formats.DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return Formats.DATETIME_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return Formats.DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return Formats.DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return Formats.DATETIME_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return Formats.DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return Formats.DATETIME_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return Formats.DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\n `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n );\n }\n}\n"],"names":["LuxonError","Error","InvalidDateTimeError","reason","toMessage","InvalidIntervalError","InvalidDurationError","ConflictingSpecificationError","InvalidUnitError","unit","InvalidArgumentError","ZoneIsAbstractError","n","s","l","DATE_SHORT","year","month","day","DATE_MED","DATE_MED_WITH_WEEKDAY","weekday","DATE_FULL","DATE_HUGE","TIME_SIMPLE","hour","minute","TIME_WITH_SECONDS","second","TIME_WITH_SHORT_OFFSET","timeZoneName","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","hour12","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","isUndefined","o","isNumber","isInteger","isString","isDate","Object","prototype","toString","call","hasIntl","Intl","DateTimeFormat","e","hasFormatToParts","formatToParts","hasRelative","RelativeTimeFormat","maybeArray","thing","Array","isArray","bestBy","arr","by","compare","length","undefined","reduce","best","next","pair","pick","obj","keys","a","k","hasOwnProperty","prop","integerBetween","bottom","top","floorMod","x","Math","floor","padStart","input","repeat","slice","parseInteger","string","parseInt","parseMillis","fraction","f","parseFloat","roundTo","number","digits","towardZero","factor","rounder","trunc","round","isLeapYear","daysInYear","daysInMonth","modMonth","modYear","objToLocalTS","d","Date","UTC","millisecond","setUTCFullYear","getUTCFullYear","weeksInWeekYear","weekYear","p1","last","p2","untruncateYear","parseZoneInfo","ts","offsetFormat","locale","timeZone","date","intlOpts","modified","assign","intl","parsed","find","m","type","toLowerCase","value","without","format","included","diffed","substring","trimmed","replace","signedOffset","offHourStr","offMinuteStr","offHour","Number","isNaN","offMin","offMinSigned","is","asNumber","numericValue","normalizeObject","normalizer","nonUnitKeys","normalized","u","indexOf","v","formatOffset","offset","hours","abs","minutes","sign","RangeError","timeObject","ianaRegex","stringify","JSON","sort","monthsLong","monthsShort","monthsNarrow","months","weekdaysLong","weekdaysShort","weekdaysNarrow","weekdays","meridiems","erasLong","erasShort","erasNarrow","eras","meridiemForDateTime","dt","weekdayForDateTime","monthForDateTime","eraForDateTime","formatRelativeTime","count","numeric","narrow","units","years","quarters","weeks","days","seconds","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","formatString","knownFormat","filtered","key","dateTimeHuge","Formats","stringifyTokens","splits","tokenToString","token","literal","val","macroTokenToFormatOpts","D","DD","DDD","DDDD","t","tt","ttt","tttt","T","TT","TTT","TTTT","ff","fff","ffff","F","FF","FFF","FFFF","Formatter","create","opts","parseFormat","fmt","current","currentFull","bracketed","i","c","charAt","push","formatOpts","loc","systemLoc","formatWithSystemDefault","redefaultToSystem","df","dtFormatter","formatDateTime","formatDateTimeParts","resolvedOptions","num","p","forceSimple","padTo","numberFormatter","formatDateTimeFromString","knownEnglish","listingMode","useDateTimeFormatter","outputCalendar","extract","isOffsetFixed","allowZ","isValid","zone","meridiem","English","standalone","maybeMacro","era","offsetName","zoneName","weekNumber","ordinal","quarter","formatDurationFromString","dur","tokenToField","lildur","mapped","get","tokens","realTokens","found","concat","collapsed","shiftTo","map","filter","Invalid","explanation","Zone","equals","otherZone","singleton","LocalZone","getTimezoneOffset","matchingRegex","RegExp","source","dtfCache","makeDTF","typeToPos","hackyOffset","dtf","formatted","exec","fMonth","fDay","fYear","fHour","fMinute","fSecond","partsOffset","filled","pos","ianaZoneCache","IANAZone","name","resetCache","isValidSpecifier","match","isValidZone","parseGMTOffset","specifier","valid","adjustedHour","asUTC","asTS","over","FixedOffsetZone","instance","utcInstance","parseSpecifier","r","fixed","InvalidZone","NaN","normalizeZone","defaultZone","lowered","now","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","throwOnInvalid","Settings","resetCaches","Locale","z","numberingSystem","intlDTCache","getCachedDTF","locString","intlNumCache","getCachedINF","inf","NumberFormat","intlRelCache","getCachedRTF","base","cacheKeyOpts","sysLocaleCache","systemLocale","computedSys","parseLocaleString","localeStr","uIndex","options","smaller","calendar","intlConfigString","mapMonths","ms","DateTime","utc","mapWeekdays","listStuff","defaultOK","englishFn","intlFn","mode","supportsFastNumbers","startsWith","PolyNumberFormatter","useGrouping","minimumIntegerDigits","PolyDateFormatter","universal","fromMillis","toJSDate","tokenFormat","PolyRelFormatter","isEnglish","style","rtf","fromOpts","defaultToEN","specifiedLocale","localeR","numberingSystemR","outputCalendarR","fromObject","numbering","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","weekdaysCache","monthsCache","meridiemCache","eraCache","fastNumbersCached","hasFTP","isActuallyEn","hasNoWeirdness","clone","alts","getOwnPropertyNames","redefaultToEN","formatStr","field","results","matching","fastNumbers","relFormatter","other","combineRegexes","regexes","full","combineExtractors","extractors","ex","mergedVals","mergedZone","cursor","parse","patterns","regex","extractor","simpleParse","ret","offsetRegex","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","isoYmdRegex","isoWeekRegex","isoOrdinalRegex","extractISOWeekData","extractISOOrdinalData","sqlYmdRegex","sqlTimeRegex","sqlTimeExtensionRegex","int","fallback","extractISOYmd","item","extractISOTime","extractISOOffset","local","fullOffset","extractIANAZone","isoDuration","extractISODuration","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","hasNegativePrefix","maybeNegate","milliseconds","obsOffsets","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","fromStrings","weekdayStr","result","rfc2822","extractRFC2822","obsOffset","milOffset","preprocessRFC2822","trim","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDataAndTime","extractISOTimeAndOffset","parseISODate","parseRFC2822Date","parseHTTPDate","parseISODuration","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOYmdTimeOffsetAndIANAZone","extractISOTimeOffsetAndIANAZone","parseSQL","INVALID","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits","reverseUnits","reverse","clear","conf","values","conversionAccuracy","Duration","antiTrunc","ceil","convert","matrix","fromMap","fromUnit","toMap","toUnit","conv","raw","sameSign","added","normalizeValues","vals","previous","config","accurate","invalid","isLuxonDuration","normalizeUnit","fromISO","text","week","isDuration","toFormat","fmtOpts","toObject","includeConfig","toISO","toJSON","valueOf","as","plus","duration","friendlyDuration","minus","negate","mapUnits","fn","set","mixed","reconfigure","normalize","built","accumulated","lastUnit","own","ak","down","negated","durationish","validateStartEnd","start","end","Interval","isLuxonInterval","fromDateTimes","builtStart","friendlyDateTime","builtEnd","validateError","after","before","split","startIsValid","endIsValid","isInterval","toDuration","startOf","diff","hasSame","isEmpty","isAfter","dateTime","isBefore","contains","splitAt","dateTimes","sorted","splitBy","divideEqually","numberOfParts","overlaps","abutsStart","abutsEnd","engulfs","intersection","union","merge","intervals","b","sofar","final","xor","currentCount","ends","time","flattened","difference","toISODate","toISOTime","dateFormat","separator","invalidReason","mapEndpoints","mapFn","Info","hasDST","proto","setZone","isValidIANAZone","monthsFormat","weekdaysFormat","features","intlTokens","zones","relative","dayDiff","earlier","later","utcDayStart","toUTC","keepLocalTime","highOrderDiffs","differs","lowestOrder","highWater","differ","delta","remainingMillis","lowerOrderUnits","numberingSystems","arab","arabext","bali","beng","deva","fullwide","gujr","hanidec","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","latn","numberingSystemsUTF16","hanidecChars","parseDigits","str","code","charCodeAt","search","min","max","digitRegex","append","MISSING_FTP","intUnit","post","deser","NBSP","String","fromCharCode","spaceOrNBSP","spaceOrNBSPRegExp","fixListRegex","stripInsensitivities","oneOf","strings","startIndex","join","findIndex","groups","h","simple","escapeToken","unitForToken","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","unitate","partTypeStyleToTokenVal","short","long","dayperiod","dayPeriod","tokenForPart","part","buildRegex","re","handlers","matches","all","matchIndex","dateTimeFromMatches","toField","Z","q","M","G","y","S","dummyDateTimeCache","getDummyDateTime","maybeExpandMacroToken","formatter","parts","includes","expandMacroTokens","explainFromTokens","disqualifyingUnit","regexString","rawMatches","parseFromTokens","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","getUTCDay","computeOrdinal","uncomputeOrdinal","table","month0","gregorianToWeek","gregObj","weekToGregorian","weekData","weekdayOfJan4","yearInDays","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","hasInvalidWeekData","validYear","validWeek","validWeekday","hasInvalidOrdinalData","validOrdinal","hasInvalidGregorianData","validMonth","validDay","hasInvalidTimeData","validHour","validMinute","validSecond","validMillisecond","MAX_DATE","unsupportedZone","possiblyCachedWeekData","inst","old","fixOffset","localTS","tz","utcGuess","o2","o3","tsToObj","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","objToTS","adjustTime","oPre","millisToAdd","parseDataToDateTime","parsedZone","interpretationZone","toTechFormat","toTechTimeFormat","suppressSeconds","suppressMilliseconds","includeOffset","includeZone","spaceZone","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedWeekUnits","orderedOrdinalUnits","weeknumber","weeksnumber","weeknumbers","weekyear","weekyears","quickDT","tsNow","offsetProvis","diffRelative","calendary","unchanged","ot","_zone","isLuxonDateTime","fromJSDate","zoneToUse","fromSeconds","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","useWeekData","defaultValues","objNow","foundFirst","higherOrderInvalid","gregorian","tsFinal","offsetFinal","fromRFC2822","fromHTTP","fromFormat","localeToUse","fromString","fromSQL","isDateTime","resolvedLocaleOpts","toLocal","keepCalendarTime","newTS","offsetGuess","asObj","setLocale","settingWeekStuff","normalizedUnit","endOf","toLocaleString","toLocaleParts","toISOWeekDate","toRFC2822","toHTTP","toSQLDate","toSQLTime","toSQL","toMillis","toSeconds","toBSON","otherDateTime","durOpts","otherIsLater","diffNow","until","inputMs","toRelative","padding","toRelativeCalendar","every","fromFormatExplain","fromStringExplain","dateTimeish"],"mappings":"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"} \ No newline at end of file diff --git a/npm_assets/node_modules/luxon/build/global/luxon.js b/npm_assets/node_modules/luxon/build/global/luxon.js index aa6e8caa20..094b987e94 100644 --- a/npm_assets/node_modules/luxon/build/global/luxon.js +++ b/npm_assets/node_modules/luxon/build/global/luxon.js @@ -127,7 +127,7 @@ var luxon = (function (exports) { if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } @@ -282,6 +282,12 @@ var luxon = (function (exports) { month: s, day: n }; + var DATE_MED_WITH_WEEKDAY = { + year: n, + month: s, + day: n, + weekday: s + }; var DATE_FULL = { year: n, month: l, @@ -664,20 +670,19 @@ var luxon = (function (exports) { return normalized; } function formatOffset(offset, format) { - var hours = Math.trunc(offset / 60), - minutes = Math.abs(offset % 60), - sign = hours >= 0 && !Object.is(hours, -0) ? "+" : "-", - base = "" + sign + Math.abs(hours); + var hours = Math.trunc(Math.abs(offset / 60)), + minutes = Math.trunc(Math.abs(offset % 60)), + sign = offset >= 0 ? "+" : "-"; switch (format) { case "short": - return "" + sign + padStart(Math.abs(hours), 2) + ":" + padStart(minutes, 2); + return "" + sign + padStart(hours, 2) + ":" + padStart(minutes, 2); case "narrow": - return minutes > 0 ? base + ":" + minutes : base; + return "" + sign + hours + (minutes > 0 ? ":" + minutes : ""); case "techie": - return "" + sign + padStart(Math.abs(hours), 2) + padStart(minutes, 2); + return "" + sign + padStart(hours, 2) + padStart(minutes, 2); default: throw new RangeError("Value format " + format + " is out of range for property format"); @@ -830,6 +835,9 @@ var luxon = (function (exports) { case stringify(DATE_MED): return "LLL d, yyyy"; + case stringify(DATE_MED_WITH_WEEKDAY): + return "EEE, LLL d, yyyy"; + case stringify(DATE_FULL): return "LLLL d, yyyy"; @@ -2937,7 +2945,7 @@ var luxon = (function (exports) { var offsetRegex = /(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/, - isoTimeBaseRegex = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,9}))?)?)?/, + isoTimeBaseRegex = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/, isoTimeRegex = RegExp("" + isoTimeBaseRegex.source + offsetRegex.source + "?"), isoTimeExtensionRegex = RegExp("(?:T" + isoTimeRegex.source + ")?"), isoYmdRegex = /([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/, @@ -2987,7 +2995,7 @@ var luxon = (function (exports) { } // ISO duration parsing - var isoDuration = /^-?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,9})(?:[.,](-?\d{1,9}))?S)?)?)$/; + var isoDuration = /^-?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 extractISODuration(match) { var s = match[0], @@ -3175,6 +3183,7 @@ var luxon = (function (exports) { }, casualMatrix = Object.assign({ years: { + quarters: 4, months: 12, weeks: 52, days: 365, @@ -3189,6 +3198,7 @@ var luxon = (function (exports) { days: 91, hours: 91 * 24, minutes: 91 * 24 * 60, + seconds: 91 * 24 * 60 * 60, milliseconds: 91 * 24 * 60 * 60 * 1000 }, months: { @@ -3204,6 +3214,7 @@ var luxon = (function (exports) { daysInMonthAccurate = 146097.0 / 4800, accurateMatrix = Object.assign({ years: { + quarters: 4, months: 12, weeks: daysInYearAccurate / 7, days: daysInYearAccurate, @@ -3757,7 +3768,6 @@ var luxon = (function (exports) { accumulated = {}, vals = this.toObject(); var lastUnit; - normalizeValues(this.matrix, vals); for (var _iterator2 = _createForOfIteratorHelperLoose(orderedUnits), _step2; !(_step2 = _iterator2()).done;) { var k = _step2.value; @@ -4026,7 +4036,7 @@ var luxon = (function (exports) { * * **Accessors** Use {@link start} and {@link end} to get the start and end. * * **Interrogation** To analyze the Interval, use {@link count}, {@link length}, {@link hasSame}, {@link contains}, {@link isAfter}, or {@link isBefore}. * * **Transformation** To create other Intervals out of this one, use {@link set}, {@link splitAt}, {@link splitBy}, {@link divideEqually}, {@link merge}, {@link xor}, {@link union}, {@link intersection}, or {@link difference}. - * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs} + * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs}. * * **Output** To convert the Interval into other representations, see {@link toString}, {@link toISO}, {@link toISODate}, {@link toISOTime}, {@link toFormat}, and {@link toDuration}. */ @@ -4147,20 +4157,35 @@ var luxon = (function (exports) { e = _split[1]; if (s && e) { - var start = DateTime.fromISO(s, opts), - end = DateTime.fromISO(e, opts); + var start, startIsValid; + + try { + start = DateTime.fromISO(s, opts); + startIsValid = start.isValid; + } catch (e) { + startIsValid = false; + } + + var end, endIsValid; - if (start.isValid && end.isValid) { + try { + end = DateTime.fromISO(e, opts); + endIsValid = end.isValid; + } catch (e) { + endIsValid = false; + } + + if (startIsValid && endIsValid) { return Interval.fromDateTimes(start, end); } - if (start.isValid) { + if (startIsValid) { var dur = Duration.fromISO(e, opts); if (dur.isValid) { return Interval.after(start, dur); } - } else if (end.isValid) { + } else if (endIsValid) { var _dur = Duration.fromISO(s, opts); if (_dur.isValid) { @@ -4228,7 +4253,7 @@ var luxon = (function (exports) { ; _proto.hasSame = function hasSame(unit) { - return this.isValid ? this.e.minus(1).hasSame(this.s, unit) : false; + return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false; } /** * Return whether this Interval has the same start and end DateTimes. @@ -4816,7 +4841,7 @@ var luxon = (function (exports) { /** * Return an array of standalone week names. * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat - * @param {string} [length='long'] - the length of the month representation, such as "narrow", "short", "long". + * @param {string} [length='long'] - the length of the weekday representation, such as "narrow", "short", "long". * @param {Object} opts - options * @param {string} [opts.locale] - the locale code * @param {string} [opts.numberingSystem=null] - the numbering system @@ -4846,7 +4871,7 @@ var luxon = (function (exports) { * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that * changes the string. * See {@link weekdays} - * @param {string} [length='long'] - the length of the month representation, such as "narrow", "short", "long". + * @param {string} [length='long'] - the length of the weekday representation, such as "narrow", "short", "long". * @param {Object} opts - options * @param {string} [opts.locale=null] - the locale code * @param {string} [opts.numberingSystem=null] - the numbering system @@ -5140,13 +5165,20 @@ var luxon = (function (exports) { }; } + var NBSP = String.fromCharCode(160); + var spaceOrNBSP = "( |" + NBSP + ")"; + var spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, "g"); + function fixListRegex(s) { // make dots optional and also make them literal - return s.replace(/\./, "\\.?"); + // make space and non breakable space characters interchangeable + return s.replace(/\./g, "\\.?").replace(spaceOrNBSPRegExp, spaceOrNBSP); } function stripInsensitivities(s) { - return s.replace(/\./, "").toLowerCase(); + return s.replace(/\./g, "") // ignore dots that were made optional + .replace(spaceOrNBSPRegExp, " ") // interchange space and nbsp + .toLowerCase(); } function oneOf(strings, startIndex) { @@ -5911,24 +5943,20 @@ var luxon = (function (exports) { function adjustTime(inst, dur) { - var _dur; - - var keys = Object.keys(dur.values); - - if (keys.indexOf("milliseconds") === -1) { - keys.push("milliseconds"); - } - - dur = (_dur = dur).shiftTo.apply(_dur, keys); var oPre = inst.o, - year = inst.c.year + dur.years, - month = inst.c.month + dur.months + dur.quarters * 3, + year = inst.c.year + Math.trunc(dur.years), + month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3, c = Object.assign({}, inst.c, { year: year, month: month, - day: Math.min(inst.c.day, daysInMonth(year, month)) + dur.days + dur.weeks * 7 + day: Math.min(inst.c.day, daysInMonth(year, month)) + Math.trunc(dur.days) + Math.trunc(dur.weeks) * 7 }), millisToAdd = Duration.fromObject({ + years: dur.years - Math.trunc(dur.years), + quarters: dur.quarters - Math.trunc(dur.quarters), + months: dur.months - Math.trunc(dur.months), + weeks: dur.weeks - Math.trunc(dur.weeks), + days: dur.days - Math.trunc(dur.days), hours: dur.hours, minutes: dur.minutes, seconds: dur.seconds, @@ -8035,6 +8063,16 @@ var luxon = (function (exports) { get: function get() { return DATE_MED; } + /** + * {@link toLocaleString} format like 'Fri, Oct 14, 1983' + * @type {Object} + */ + + }, { + key: "DATE_MED_WITH_WEEKDAY", + get: function get() { + return DATE_MED_WITH_WEEKDAY; + } /** * {@link toLocaleString} format like 'October 14, 1983' * @type {Object} diff --git a/npm_assets/node_modules/luxon/build/global/luxon.js.map b/npm_assets/node_modules/luxon/build/global/luxon.js.map index 2b8f42a654..0f8ea09ea7 100644 --- a/npm_assets/node_modules/luxon/build/global/luxon.js.map +++ b/npm_assets/node_modules/luxon/build/global/luxon.js.map @@ -1 +1 @@ -{"version":3,"file":"luxon.js","sources":["../../src/errors.js","../../src/impl/formats.js","../../src/impl/util.js","../../src/impl/english.js","../../src/impl/formatter.js","../../src/impl/invalid.js","../../src/zone.js","../../src/zones/localZone.js","../../src/zones/IANAZone.js","../../src/zones/fixedOffsetZone.js","../../src/zones/invalidZone.js","../../src/impl/zoneUtil.js","../../src/settings.js","../../src/impl/locale.js","../../src/impl/regexParser.js","../../src/duration.js","../../src/interval.js","../../src/info.js","../../src/impl/diff.js","../../src/impl/digits.js","../../src/impl/tokenParser.js","../../src/impl/conversions.js","../../src/datetime.js"],"sourcesContent":["// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nclass LuxonError extends Error {}\n\n/**\n * @private\n */\nexport class InvalidDateTimeError extends LuxonError {\n constructor(reason) {\n super(`Invalid DateTime: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidIntervalError extends LuxonError {\n constructor(reason) {\n super(`Invalid Interval: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidDurationError extends LuxonError {\n constructor(reason) {\n super(`Invalid Duration: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class ConflictingSpecificationError extends LuxonError {}\n\n/**\n * @private\n */\nexport class InvalidUnitError extends LuxonError {\n constructor(unit) {\n super(`Invalid unit ${unit}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidArgumentError extends LuxonError {}\n\n/**\n * @private\n */\nexport class ZoneIsAbstractError extends LuxonError {\n constructor() {\n super(\"Zone is an abstract class\");\n }\n}\n","/**\n * @private\n */\n\nconst n = \"numeric\",\n s = \"short\",\n l = \"long\";\n\nexport const DATE_SHORT = {\n year: n,\n month: n,\n day: n\n};\n\nexport const DATE_MED = {\n year: n,\n month: s,\n day: n\n};\n\nexport const DATE_FULL = {\n year: n,\n month: l,\n day: n\n};\n\nexport const DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l\n};\n\nexport const TIME_SIMPLE = {\n hour: n,\n minute: n\n};\n\nexport const TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n\n};\n\nexport const TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n\nexport const TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23', always 24-hour.\n */\nexport const TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 EDT', always 24-hour.\n */\nexport const TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: s\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 Eastern Daylight Time', always 24-hour.\n */\nexport const TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: l\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s\n};\n\nexport const DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l\n};\n\nexport const DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n","/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\nimport { InvalidArgumentError } from \"../errors.js\";\n\n/**\n * @private\n */\n\n// TYPES\n\nexport function isUndefined(o) {\n return typeof o === \"undefined\";\n}\n\nexport function isNumber(o) {\n return typeof o === \"number\";\n}\n\nexport function isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\n\nexport function isString(o) {\n return typeof o === \"string\";\n}\n\nexport function isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nexport function hasIntl() {\n try {\n return typeof Intl !== \"undefined\" && Intl.DateTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\nexport function hasFormatToParts() {\n return !isUndefined(Intl.DateTimeFormat.prototype.formatToParts);\n}\n\nexport function hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nexport function maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\n\nexport function bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\n\nexport function pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\n\nexport function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n// NUMBERS AND STRINGS\n\nexport function integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nexport function floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\n\nexport function padStart(input, n = 2) {\n if (input.toString().length < n) {\n return (\"0\".repeat(n) + input).slice(-n);\n } else {\n return input.toString();\n }\n}\n\nexport function parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\n\nexport function parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\n\nexport function roundTo(number, digits, towardZero = false) {\n const factor = 10 ** digits,\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nexport function isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// covert a calendar object to a local timestamp (epoch, but with the offset baked in)\nexport function objToLocalTS(obj) {\n let d = Date.UTC(\n obj.year,\n obj.month - 1,\n obj.day,\n obj.hour,\n obj.minute,\n obj.second,\n obj.millisecond\n );\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n return +d;\n}\n\nexport function weeksInWeekYear(weekYear) {\n const p1 =\n (weekYear +\n Math.floor(weekYear / 4) -\n Math.floor(weekYear / 100) +\n Math.floor(weekYear / 400)) %\n 7,\n last = weekYear - 1,\n p2 = (last + Math.floor(last / 4) - Math.floor(last / 100) + Math.floor(last / 400)) % 7;\n return p1 === 4 || p2 === 3 ? 53 : 52;\n}\n\nexport function untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > 60 ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nexport function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hour12: false,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\"\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n const modified = Object.assign({ timeZoneName: offsetFormat }, intlOpts),\n intl = hasIntl();\n\n if (intl && hasFormatToParts()) {\n const parsed = new Intl.DateTimeFormat(locale, modified)\n .formatToParts(date)\n .find(m => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n } else if (intl) {\n // this probably doesn't work for all locales\n const without = new Intl.DateTimeFormat(locale, intlOpts).format(date),\n included = new Intl.DateTimeFormat(locale, modified).format(date),\n diffed = included.substring(without.length),\n trimmed = diffed.replace(/^[, \\u200e]+/, \"\");\n return trimmed;\n } else {\n return null;\n }\n}\n\n// signedOffset('-5', '30') -> -330\nexport function signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nexport function asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue))\n throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\n\nexport function normalizeObject(obj, normalizer, nonUnitKeys) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n if (nonUnitKeys.indexOf(u) >= 0) continue;\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\nexport function formatOffset(offset, format) {\n const hours = Math.trunc(offset / 60),\n minutes = Math.abs(offset % 60),\n sign = hours >= 0 && !Object.is(hours, -0) ? \"+\" : \"-\",\n base = `${sign}${Math.abs(hours)}`;\n\n switch (format) {\n case \"short\":\n return `${sign}${padStart(Math.abs(hours), 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return minutes > 0 ? `${base}:${minutes}` : base;\n case \"techie\":\n return `${sign}${padStart(Math.abs(hours), 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\n\nexport function timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n\nexport const ianaRegex = /[A-Za-z_+-]{1,256}(:?\\/[A-Za-z_+-]{1,256}(\\/[A-Za-z_+-]{1,256})?)?/;\n","import * as Formats from \"./formats.js\";\nimport { pick } from \"./util.js\";\n\nfunction stringify(obj) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n}\n\n/**\n * @private\n */\n\nexport const monthsLong = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\n\nexport const monthsShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n];\n\nexport const monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nexport function months(length) {\n switch (length) {\n case \"narrow\":\n return monthsNarrow;\n case \"short\":\n return monthsShort;\n case \"long\":\n return monthsLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\n\nexport const weekdaysLong = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\"\n];\n\nexport const weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nexport const weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nexport function weekdays(length) {\n switch (length) {\n case \"narrow\":\n return weekdaysNarrow;\n case \"short\":\n return weekdaysShort;\n case \"long\":\n return weekdaysLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\n\nexport const meridiems = [\"AM\", \"PM\"];\n\nexport const erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nexport const erasShort = [\"BC\", \"AD\"];\n\nexport const erasNarrow = [\"B\", \"A\"];\n\nexport function eras(length) {\n switch (length) {\n case \"narrow\":\n return erasNarrow;\n case \"short\":\n return erasShort;\n case \"long\":\n return erasLong;\n default:\n return null;\n }\n}\n\nexport function meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nexport function weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\n\nexport function monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\n\nexport function eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nexport function formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"]\n };\n\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n default: // fall through\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow\n ? singular\n ? lilUnits[1]\n : lilUnits[2] || lilUnits[1]\n : singular\n ? units[unit][0]\n : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nexport function formatString(knownFormat) {\n // these all have the offsets removed because we don't have access to them\n // without all the intl stuff this is backfilling\n const filtered = pick(knownFormat, [\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n \"hour12\"\n ]),\n key = stringify(filtered),\n dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n switch (key) {\n case stringify(Formats.DATE_SHORT):\n return \"M/d/yyyy\";\n case stringify(Formats.DATE_MED):\n return \"LLL d, yyyy\";\n case stringify(Formats.DATE_FULL):\n return \"LLLL d, yyyy\";\n case stringify(Formats.DATE_HUGE):\n return \"EEEE, LLLL d, yyyy\";\n case stringify(Formats.TIME_SIMPLE):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_SECONDS):\n return \"h:mm:ss a\";\n case stringify(Formats.TIME_WITH_SHORT_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_LONG_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_24_SIMPLE):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_SECONDS):\n return \"HH:mm:ss\";\n case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_LONG_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.DATETIME_SHORT):\n return \"M/d/yyyy, h:mm a\";\n case stringify(Formats.DATETIME_MED):\n return \"LLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL):\n return \"LLLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_HUGE):\n return dateTimeHuge;\n case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):\n return \"M/d/yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_SECONDS):\n return \"LLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):\n return \"EEE, d LLL yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL_WITH_SECONDS):\n return \"LLLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):\n return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n default:\n return dateTimeHuge;\n }\n}\n","import * as English from \"./english.js\";\nimport * as Formats from \"./formats.js\";\nimport { hasFormatToParts, padStart } from \"./util.js\";\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\n\nconst macroTokenToFormatOpts = {\n D: Formats.DATE_SHORT,\n DD: Formats.DATE_MED,\n DDD: Formats.DATE_FULL,\n DDDD: Formats.DATE_HUGE,\n t: Formats.TIME_SIMPLE,\n tt: Formats.TIME_WITH_SECONDS,\n ttt: Formats.TIME_WITH_SHORT_OFFSET,\n tttt: Formats.TIME_WITH_LONG_OFFSET,\n T: Formats.TIME_24_SIMPLE,\n TT: Formats.TIME_24_WITH_SECONDS,\n TTT: Formats.TIME_24_WITH_SHORT_OFFSET,\n TTTT: Formats.TIME_24_WITH_LONG_OFFSET,\n f: Formats.DATETIME_SHORT,\n ff: Formats.DATETIME_MED,\n fff: Formats.DATETIME_FULL,\n ffff: Formats.DATETIME_HUGE,\n F: Formats.DATETIME_SHORT_WITH_SECONDS,\n FF: Formats.DATETIME_MED_WITH_SECONDS,\n FFF: Formats.DATETIME_FULL_WITH_SECONDS,\n FFFF: Formats.DATETIME_HUGE_WITH_SECONDS\n};\n\n/**\n * @private\n */\n\nexport default class Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n\n static parseFormat(fmt) {\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({ literal: false, val: currentFull });\n }\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n\n return splits;\n }\n\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTime(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTimeParts(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.formatToParts();\n }\n\n resolvedOptions(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.resolvedOptions();\n }\n\n num(n, p = 0) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n const opts = Object.assign({}, this.opts);\n\n if (p > 0) {\n opts.padTo = p;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n }\n\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter =\n this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\" && hasFormatToParts(),\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = opts => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () =>\n knownEnglish\n ? English.meridiemForDateTime(dt)\n : string({ hour: \"numeric\", hour12: true }, \"dayperiod\"),\n month = (length, standalone) =>\n knownEnglish\n ? English.monthForDateTime(dt, length)\n : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n weekday = (length, standalone) =>\n knownEnglish\n ? English.weekdayForDateTime(dt, length)\n : string(\n standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n \"weekday\"\n ),\n maybeMacro = token => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = length =>\n knownEnglish ? English.eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n tokenToString = token => {\n // Where possible: http://cldr.unicode.org/translation/date-time#TOC-Stand-Alone-vs.-Format-Styles\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n case \"ZZ\":\n // like +06:00\n return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n case \"ZZZ\":\n // like +0600\n return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter\n ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter\n ? string({ month: \"2-digit\" }, \"month\")\n : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter\n ? string({ year: \"2-digit\" }, \"year\")\n : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n\n formatDurationFromString(dur, fmt) {\n const tokenToField = token => {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = lildur => token => {\n const mapped = tokenToField(token);\n if (mapped) {\n return this.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(\n (found, { literal, val }) => (literal ? found : found.concat(val)),\n []\n ),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter(t => t));\n return stringifyTokens(tokens, tokenToString(collapsed));\n }\n}\n","export default class Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n","/* eslint no-unused-vars: \"off\" */\nimport { ZoneIsAbstractError } from \"./errors.js\";\n\n/**\n * @interface\n */\nexport default class Zone {\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get type() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n get name() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n get universal() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */\n get isValid() {\n throw new ZoneIsAbstractError();\n }\n}\n","import { formatOffset, parseZoneInfo, hasIntl } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * Represents the local zone for this Javascript environment.\n * @implements {Zone}\n */\nexport default class LocalZone extends Zone {\n /**\n * Get a singleton instance of the local zone\n * @return {LocalZone}\n */\n static get instance() {\n if (singleton === null) {\n singleton = new LocalZone();\n }\n return singleton;\n }\n\n /** @override **/\n get type() {\n return \"local\";\n }\n\n /** @override **/\n get name() {\n if (hasIntl()) {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n } else return \"local\";\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"local\";\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import { formatOffset, parseZoneInfo, isUndefined, ianaRegex, objToLocalTS } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nconst matchingRegex = RegExp(`^${ianaRegex.source}$`);\n\nlet dtfCache = {};\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n });\n }\n return dtfCache[zone];\n}\n\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n};\n\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed;\n return [fYear, fMonth, fDay, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n const formatted = dtf.formatToParts(date),\n filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const { type, value } = formatted[i],\n pos = typeToPos[type];\n\n if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\n\nlet ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nexport default class IANAZone extends Zone {\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n static create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n return ianaZoneCache[name];\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Fantasia/Castle\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return !!(s && s.match(matchingRegex));\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n // Etc/GMT+8 -> -480\n /** @ignore */\n static parseGMTOffset(specifier) {\n if (specifier) {\n const match = specifier.match(/^Etc\\/GMT([+-]\\d{1,2})$/i);\n if (match) {\n return -60 * parseInt(match[1]);\n }\n }\n return null;\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /** @override **/\n get type() {\n return \"iana\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n const date = new Date(ts),\n dtf = makeDTF(this.name),\n [year, month, day, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date),\n // work around https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /** @override **/\n get isValid() {\n return this.valid;\n }\n}\n","import { formatOffset, signedOffset } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nexport default class FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /** @override **/\n get type() {\n return \"fixed\";\n }\n\n /** @override **/\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n /** @override **/\n offsetName() {\n return this.name;\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /** @override **/\n get universal() {\n return true;\n }\n\n /** @override **/\n offset() {\n return this.fixed;\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import Zone from \"../zone.js\";\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nexport default class InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n","/**\n * @private\n */\n\nimport Zone from \"../zone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport InvalidZone from \"../zones/invalidZone.js\";\n\nimport { isUndefined, isString, isNumber } from \"./util.js\";\n\nexport function normalizeZone(input, defaultZone) {\n let offset;\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"local\") return defaultZone;\n else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n else if ((offset = IANAZone.parseGMTOffset(input)) != null) {\n // handle Etc/GMT-4, which V8 chokes on\n return FixedOffsetZone.instance(offset);\n } else if (IANAZone.isValidSpecifier(lowered)) return IANAZone.create(input);\n else return FixedOffsetZone.parseSpecifier(lowered) || new InvalidZone(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && input.offset && typeof input.offset === \"number\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n","import LocalZone from \"./zones/localZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport Locale from \"./impl/locale.js\";\n\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nlet now = () => Date.now(),\n defaultZone = null, // not setting this directly to LocalZone.instance bc loading order issues\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n throwOnInvalid = false;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nexport default class Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Get the default time zone to create DateTimes in.\n * @type {string}\n */\n static get defaultZoneName() {\n return Settings.defaultZone.name;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * @type {string}\n */\n static set defaultZoneName(z) {\n if (!z) {\n defaultZone = null;\n } else {\n defaultZone = normalizeZone(z);\n }\n }\n\n /**\n * Get the default time zone object to create DateTimes in. Does not affect existing instances.\n * @type {Zone}\n */\n static get defaultZone() {\n return defaultZone || LocalZone.instance;\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n }\n}\n","import { hasFormatToParts, hasIntl, padStart, roundTo, hasRelative } from \"./util.js\";\nimport * as English from \"./english.js\";\nimport Settings from \"../settings.js\";\nimport DateTime from \"../datetime.js\";\nimport Formatter from \"./formatter.js\";\n\nlet intlDTCache = {};\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlNumCache = {};\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\n\nlet intlRelCache = {};\nfunction getCachedRTF(locString, opts = {}) {\n const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else if (hasIntl()) {\n const computedSys = new Intl.DateTimeFormat().resolvedOptions().locale;\n // node sometimes defaults to \"und\". Override that because that is dumb\n sysLocaleCache = !computedSys || computedSys === \"und\" ? \"en-US\" : computedSys;\n return sysLocaleCache;\n } else {\n sysLocaleCache = \"en-US\";\n return sysLocaleCache;\n }\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n const smaller = localeStr.substring(0, uIndex);\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n } catch (e) {\n options = getCachedDTF(smaller).resolvedOptions();\n }\n\n const { numberingSystem, calendar } = options;\n // return the smaller one so that we can append the calendar and numbering overrides to it\n return [smaller, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (hasIntl()) {\n if (outputCalendar || numberingSystem) {\n localeStr += \"-u\";\n\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n } else {\n return [];\n }\n}\n\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2016, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction listStuff(loc, length, defaultOK, englishFn, intlFn) {\n const mode = loc.listingMode(defaultOK);\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return (\n loc.numberingSystem === \"latn\" ||\n !loc.locale ||\n loc.locale.startsWith(\"en\") ||\n (hasIntl() && new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\")\n );\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n if (!forceSimple && hasIntl()) {\n const intlOpts = { useGrouping: false };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n this.hasIntl = hasIntl();\n\n let z;\n if (dt.zone.universal && this.hasIntl) {\n // Chromium doesn't support fixed-offset zones like Etc/GMT+8 in its formatter,\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=364374.\n // So we have to make do. Two cases:\n // 1. The format options tell us to show the zone. We can't do that, so the best\n // we can do is format the date in UTC.\n // 2. The format options don't tell us to show the zone. Then we can adjust them\n // the time and tell the formatter to show it to us in UTC, so that the time is right\n // and the bad zone doesn't show up.\n // We can clean all this up when Chrome fixes this.\n z = \"UTC\";\n if (opts.timeZoneName) {\n this.dt = dt;\n } else {\n this.dt = dt.offset === 0 ? dt : DateTime.fromMillis(dt.ts + dt.offset * 60 * 1000);\n }\n } else if (dt.zone.type === \"local\") {\n this.dt = dt;\n } else {\n this.dt = dt;\n z = dt.zone.name;\n }\n\n if (this.hasIntl) {\n const intlOpts = Object.assign({}, this.opts);\n if (z) {\n intlOpts.timeZone = z;\n }\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n }\n\n format() {\n if (this.hasIntl) {\n return this.dtf.format(this.dt.toJSDate());\n } else {\n const tokenFormat = English.formatString(this.opts),\n loc = Locale.create(\"en-US\");\n return Formatter.create(loc).formatDateTimeFromString(this.dt, tokenFormat);\n }\n }\n\n formatToParts() {\n if (this.hasIntl && hasFormatToParts()) {\n return this.dtf.formatToParts(this.dt.toJSDate());\n } else {\n // This is kind of a cop out. We actually could do this for English. However, we couldn't do it for intl strings\n // and IMO it's too weird to have an uncanny valley like that\n return [];\n }\n }\n\n resolvedOptions() {\n if (this.hasIntl) {\n return this.dtf.resolvedOptions();\n } else {\n return {\n locale: \"en-US\",\n numberingSystem: \"latn\",\n outputCalendar: \"gregory\"\n };\n }\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = Object.assign({ style: \"long\" }, opts);\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return English.formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\n\n/**\n * @private\n */\n\nexport default class Locale {\n static fromOpts(opts) {\n return Locale.create(opts.locale, opts.numberingSystem, opts.outputCalendar, opts.defaultToEN);\n }\n\n static create(locale, numberingSystem, outputCalendar, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale,\n // the system locale is useful for human readable strings but annoying for parsing/formatting known formats\n localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale()),\n numberingSystemR = numberingSystem || Settings.defaultNumberingSystem,\n outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n return new Locale(localeR, numberingSystemR, outputCalendarR, specifiedLocale);\n }\n\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n }\n\n static fromObject({ locale, numberingSystem, outputCalendar } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar);\n }\n\n constructor(locale, numbering, outputCalendar, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n this.weekdaysCache = { format: {}, standalone: {} };\n this.monthsCache = { format: {}, standalone: {} };\n this.meridiemCache = null;\n this.eraCache = {};\n\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n\n listingMode(defaultOK = true) {\n const intl = hasIntl(),\n hasFTP = intl && hasFormatToParts(),\n isActuallyEn = this.isEnglish(),\n hasNoWeirdness =\n (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n\n if (!hasFTP && !(isActuallyEn && hasNoWeirdness) && !defaultOK) {\n return \"error\";\n } else if (!hasFTP || (isActuallyEn && hasNoWeirdness)) {\n return \"en\";\n } else {\n return \"intl\";\n }\n }\n\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(\n alts.locale || this.specifiedLocale,\n alts.numberingSystem || this.numberingSystem,\n alts.outputCalendar || this.outputCalendar,\n alts.defaultToEN || false\n );\n }\n }\n\n redefaultToEN(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: true }));\n }\n\n redefaultToSystem(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: false }));\n }\n\n months(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.months, () => {\n const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n this.monthsCache[formatStr][length] = mapMonths(dt => this.extract(dt, intl, \"month\"));\n }\n return this.monthsCache[formatStr][length];\n });\n }\n\n weekdays(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.weekdays, () => {\n const intl = format\n ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n : { weekday: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays(dt =>\n this.extract(dt, intl, \"weekday\")\n );\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n\n meridiems(defaultOK = true) {\n return listStuff(\n this,\n undefined,\n defaultOK,\n () => English.meridiems,\n () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = { hour: \"numeric\", hour12: true };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n dt => this.extract(dt, intl, \"dayperiod\")\n );\n }\n\n return this.meridiemCache;\n }\n );\n }\n\n eras(length, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.eras, () => {\n const intl = { era: length };\n\n // This is utter bullshit. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map(dt =>\n this.extract(dt, intl, \"era\")\n );\n }\n\n return this.eraCache[length];\n });\n }\n\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find(m => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n\n isEnglish() {\n return (\n this.locale === \"en\" ||\n this.locale.toLowerCase() === \"en-us\" ||\n (hasIntl() && new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\"))\n );\n }\n\n equals(other) {\n return (\n this.locale === other.locale &&\n this.numberingSystem === other.numberingSystem &&\n this.outputCalendar === other.outputCalendar\n );\n }\n}\n","import {\n untruncateYear,\n signedOffset,\n parseInteger,\n parseMillis,\n ianaRegex,\n isUndefined\n} from \"./util.js\";\nimport * as English from \"./english.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n return m =>\n extractors\n .reduce(\n ([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [Object.assign(mergedVals, val), mergedZone || zone, next];\n },\n [{}, null, 1]\n )\n .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\n\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/,\n isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,9}))?)?)?/,\n isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${offsetRegex.source}?`),\n isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`),\n isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/,\n isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/,\n isoOrdinalRegex = /(\\d{4})-?(\\d{3})/,\n extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\"),\n extractISOOrdinalData = simpleParse(\"year\", \"ordinal\"),\n sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/, // dumbed-down version of the ISO one\n sqlTimeRegex = RegExp(\n `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n ),\n sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1)\n };\n\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n const item = {\n hour: int(match, cursor, 0),\n minute: int(match, cursor + 1, 0),\n second: int(match, cursor + 2, 0),\n millisecond: parseMillis(match[cursor + 3])\n };\n\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO duration parsing\n\nconst isoDuration = /^-?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,9})(?:[.,](-?\\d{1,9}))?S)?)?)$/;\n\nfunction extractISODuration(match) {\n const [\n s,\n yearStr,\n monthStr,\n weekStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr,\n millisecondsStr\n ] = match;\n\n const hasNegativePrefix = s[0] === \"-\";\n\n const maybeNegate = num => (num && hasNegativePrefix ? -num : num);\n\n return [\n {\n years: maybeNegate(parseInteger(yearStr)),\n months: maybeNegate(parseInteger(monthStr)),\n weeks: maybeNegate(parseInteger(weekStr)),\n days: maybeNegate(parseInteger(dayStr)),\n hours: maybeNegate(parseInteger(hourStr)),\n minutes: maybeNegate(parseInteger(minuteStr)),\n seconds: maybeNegate(parseInteger(secondStr)),\n milliseconds: maybeNegate(parseMillis(millisecondsStr))\n }\n ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\n\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: English.monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr)\n };\n\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday =\n weekdayStr.length > 3\n ? English.weekdaysLong.indexOf(weekdayStr) + 1\n : English.weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 = /^(?:(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)))$/;\n\nfunction extractRFC2822(match) {\n const [\n ,\n weekdayStr,\n dayStr,\n monthStr,\n yearStr,\n hourStr,\n minuteStr,\n secondStr,\n obsOffset,\n milOffset,\n offHourStr,\n offMinuteStr\n ] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, \" \")\n .replace(/(\\s\\s+)/g, \" \")\n .trim();\n}\n\n// http date\n\nconst rfc1123 = /^(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$/,\n rfc850 = /^(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$/,\n ascii = /^(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})$/;\n\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n extractISOWeekData,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOOrdinalDataAndTime = combineExtractors(extractISOOrdinalData, extractISOTime);\nconst extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset);\n\n/**\n * @private\n */\n\nexport function parseISODate(s) {\n return parse(\n s,\n [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDataAndTime],\n [isoTimeCombinedRegex, extractISOTimeAndOffset]\n );\n}\n\nexport function parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nexport function parseHTTPDate(s) {\n return parse(\n s,\n [rfc1123, extractRFC1123Or850],\n [rfc850, extractRFC1123Or850],\n [ascii, extractASCII]\n );\n}\n\nexport function parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOYmdTimeOffsetAndIANAZone = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\nexport function parseSQL(s) {\n return parse(\n s,\n [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeOffsetAndIANAZone],\n [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n );\n}\n","import { InvalidArgumentError, InvalidDurationError, InvalidUnitError } from \"./errors.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Locale from \"./impl/locale.js\";\nimport { parseISODuration } from \"./impl/regexParser.js\";\nimport {\n asNumber,\n hasOwnProperty,\n isNumber,\n isUndefined,\n normalizeObject,\n roundTo\n} from \"./impl/util.js\";\nimport Settings from \"./settings.js\";\n\nconst INVALID = \"Invalid Duration\";\n\n// unit conversion constants\nconst lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000\n },\n hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n minutes: { seconds: 60, milliseconds: 60 * 1000 },\n seconds: { milliseconds: 1000 }\n },\n casualMatrix = Object.assign(\n {\n years: {\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n ),\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = Object.assign(\n {\n years: {\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: (daysInYearAccurate * 24) / 4,\n minutes: (daysInYearAccurate * 24 * 60) / 4,\n seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n );\n\n// units ordered by size\nconst orderedUnits = [\n \"years\",\n \"quarters\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n];\n\nconst reverseUnits = orderedUnits.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : Object.assign({}, dur.values, alts.values || {}),\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy\n };\n return new Duration(conf);\n}\n\nfunction antiTrunc(n) {\n return n < 0 ? Math.floor(n) : Math.ceil(n);\n}\n\n// NB: mutates parameters\nfunction convert(matrix, fromMap, fromUnit, toMap, toUnit) {\n const conv = matrix[toUnit][fromUnit],\n raw = fromMap[fromUnit] / conv,\n sameSign = Math.sign(raw) === Math.sign(toMap[toUnit]),\n // ok, so this is wild, but see the matrix in the tests\n added =\n !sameSign && toMap[toUnit] !== 0 && Math.abs(raw) <= 1 ? antiTrunc(raw) : Math.trunc(raw);\n toMap[toUnit] += added;\n fromMap[fromUnit] -= added * conv;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n reverseUnits.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n convert(matrix, vals, previous, vals, current);\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime.plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration.years}, {@link Duration.months}, {@link Duration.weeks}, {@link Duration.days}, {@link Duration.hours}, {@link Duration.minutes}, {@link Duration.seconds}, {@link Duration.milliseconds} accessors.\n * * **Configuration** See {@link Duration.locale} and {@link Duration.numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration.plus}, {@link Duration.minus}, {@link Duration.normalize}, {@link Duration.set}, {@link Duration.reconfigure}, {@link Duration.shiftTo}, and {@link Duration.negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration.as}, {@link Duration.toISO}, {@link Duration.toFormat}, and {@link Duration.toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nexport default class Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = accurate ? accurateMatrix : casualMatrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject(Object.assign({ milliseconds: count }, opts));\n }\n\n /**\n * Create a Duration from a Javascript object with keys like 'years' and 'hours.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {string} [obj.locale='en-US'] - the locale to use\n * @param {string} obj.numberingSystem - the numbering system to use\n * @param {string} [obj.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromObject(obj) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\n `Duration.fromObject: argument expected to be an object, got ${\n obj === null ? \"null\" : typeof obj\n }`\n );\n }\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit, [\n \"locale\",\n \"numberingSystem\",\n \"conversionAccuracy\",\n \"zone\" // a bit of debt; it's super inconvenient internally not to be able to blindly pass this\n ]),\n loc: Locale.fromObject(obj),\n conversionAccuracy: obj.conversionAccuracy\n });\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n const obj = Object.assign(parsed, opts);\n return Duration.fromObject(obj);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({ invalid });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\"\n }[unit ? unit.toLowerCase() : unit];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return (o && o.isLuxonDuration) || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * The duration will be converted to the set of units in the format string using {@link Duration.shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = Object.assign({}, opts, {\n floor: opts.round !== false && opts.floor !== false\n });\n return this.isValid\n ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a Javascript object with this Duration's values.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.values);\n\n if (opts.includeConfig) {\n base.conversionAccuracy = this.conversionAccuracy;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n valueOf() {\n return this.as(\"milliseconds\");\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration),\n result = {};\n\n for (const k of orderedUnits) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone(this, { values: result }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit((x, u) => u === \"hour\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone(this, { values: result }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).years //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).months //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).days //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const mixed = Object.assign(this.values, normalizeObject(values, Duration.normalizeUnit, []));\n return clone(this, { values: mixed });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({ locale, numberingSystem, conversionAccuracy } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem }),\n opts = { loc };\n\n if (conversionAccuracy) {\n opts.conversionAccuracy = conversionAccuracy;\n }\n\n return clone(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map(u => Duration.normalizeUnit(u));\n\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n\n normalizeValues(this.matrix, vals);\n\n for (const k of orderedUnits) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = own - i; // we'd like to absorb these fractions in another unit\n\n // plus anything further down the chain that should be rolled up in to this\n for (const down in vals) {\n if (orderedUnits.indexOf(down) > orderedUnits.indexOf(k)) {\n convert(this.matrix, vals, down, built, k);\n }\n }\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] +=\n key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n return clone(this, { values: built }, true).normalize();\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = -this.values[k];\n }\n return clone(this, { values: negated }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n for (const u of orderedUnits) {\n if (this.values[u] !== other.values[u]) {\n return false;\n }\n }\n return true;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDuration(durationish) {\n if (isNumber(durationish)) {\n return Duration.fromMillis(durationish);\n } else if (Duration.isDuration(durationish)) {\n return durationish;\n } else if (typeof durationish === \"object\") {\n return Duration.fromObject(durationish);\n } else {\n throw new InvalidArgumentError(\n `Unknown duration argument ${durationish} of type ${typeof durationish}`\n );\n }\n}\n","import DateTime, { friendlyDateTime } from \"./datetime.js\";\nimport Duration, { friendlyDuration } from \"./duration.js\";\nimport Settings from \"./settings.js\";\nimport { InvalidArgumentError, InvalidIntervalError } from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\n \"end before start\",\n `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n );\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link fromDateTimes}, {@link after}, {@link before}, or {@link fromISO}.\n * * **Accessors** Use {@link start} and {@link end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link count}, {@link length}, {@link hasSame}, {@link contains}, {@link isAfter}, or {@link isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link set}, {@link splitAt}, {@link splitBy}, {@link divideEqually}, {@link merge}, {@link xor}, {@link union}, {@link intersection}, or {@link difference}.\n * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs}\n * * **Output** To convert the Interval into other representations, see {@link toString}, {@link toISO}, {@link toISODate}, {@link toISOTime}, {@link toFormat}, and {@link toDuration}.\n */\nexport default class Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({ invalid });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n\n const validateError = validateStartEnd(builtStart, builtEnd);\n\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `<start>/<end>`, `<start>/<duration>`, and `<duration>/<end>` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime.fromISO} and optionally {@link Duration.fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n const start = DateTime.fromISO(s, opts),\n end = DateTime.fromISO(e, opts);\n\n if (start.isValid && end.isValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (start.isValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (end.isValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return (o && o.isLuxonInterval) || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @return {number}\n */\n count(unit = \"milliseconds\") {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit),\n end = this.end.startOf(unit);\n return Math.floor(end.diff(start, unit).get(unit)) + 1;\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({ start, end } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...[DateTime]} dateTimes - the unit of time to count.\n * @return {[Interval]}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes\n .map(friendlyDateTime)\n .filter(d => this.contains(d))\n .sort(),\n results = [];\n let { s } = this,\n i = 0;\n\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {[Interval]}\n */\n splitBy(duration) {\n const dur = friendlyDuration(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n let { s } = this,\n added,\n next;\n\n const results = [];\n while (s < this.e) {\n added = s.plus(dur);\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {[Interval]}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Return whether this Interval engulfs the start and end of the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s > e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static merge(intervals) {\n const [found, final] = intervals.sort((a, b) => a.s - b.s).reduce(\n ([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n },\n [[], null]\n );\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map(i => [{ time: i.s, type: \"s\" }, { time: i.e, type: \"e\" }]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {[Interval]}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals))\n .map(i => this.intersection(i))\n .filter(i => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format string.\n * @param {string} dateFormat - the format string. This string formats the start and end time. See {@link DateTime.toFormat} for details.\n * @param {Object} opts - options\n * @param {string} [opts.separator = ' – '] - a separator to place between the start and end representations\n * @return {string}\n */\n toFormat(dateFormat, { separator = \" – \" } = {}) {\n if (!this.isValid) return INVALID;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n","import DateTime from \"./datetime.js\";\nimport Settings from \"./settings.js\";\nimport Locale from \"./impl/locale.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nimport { hasFormatToParts, hasIntl, hasRelative } from \"./impl/util.js\";\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nexport default class Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.local()\n .setZone(zone)\n .set({ month: 12 });\n\n return !zone.universal && proto.offset !== proto.set({ month: 6 }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidSpecifier(zone) && IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone.isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n * @return {[string]}\n */\n static months(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {[string]}\n */\n static monthsFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {[string]}\n */\n static weekdays(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link weekdays}\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @return {[string]}\n */\n static weekdaysFormat(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {[string]}\n */\n static meridiems({ locale = null } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {[string]}\n */\n static eras(length = \"short\", { locale = null } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, timezone support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `zones`: whether this environment supports IANA timezones\n * * `intlTokens`: whether this environment supports internationalized token-based formatting/parsing\n * * `intl`: whether this environment supports general internationalization\n * * `relative`: whether this environment supports relative time formatting\n * @example Info.features() //=> { intl: true, intlTokens: false, zones: true, relative: false }\n * @return {Object}\n */\n static features() {\n let intl = false,\n intlTokens = false,\n zones = false,\n relative = false;\n\n if (hasIntl()) {\n intl = true;\n intlTokens = hasFormatToParts();\n relative = hasRelative();\n\n try {\n zones =\n new Intl.DateTimeFormat(\"en\", { timeZone: \"America/New_York\" }).resolvedOptions()\n .timeZone === \"America/New_York\";\n } catch (e) {\n zones = false;\n }\n }\n\n return { intl, intlTokens, zones, relative };\n }\n}\n","import Duration from \"../duration.js\";\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = dt =>\n dt\n .toUTC(0, { keepLocalTime: true })\n .startOf(\"day\")\n .valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [\n [\"years\", (a, b) => b.year - a.year],\n [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n [\n \"weeks\",\n (a, b) => {\n const days = dayDiff(a, b);\n return (days - (days % 7)) / 7;\n }\n ],\n [\"days\", dayDiff]\n ];\n\n const results = {};\n let lowestOrder, highWater;\n\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n\n let delta = differ(cursor, later);\n highWater = cursor.plus({ [unit]: delta });\n\n if (highWater > later) {\n cursor = cursor.plus({ [unit]: delta - 1 });\n delta -= 1;\n } else {\n cursor = highWater;\n }\n\n results[unit] = delta;\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nexport default function(earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n const remainingMillis = later - cursor;\n\n const lowerOrderUnits = units.filter(\n u => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n );\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({ [lowestOrder]: 1 });\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n const duration = Duration.fromObject(Object.assign(results, opts));\n\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts)\n .shiftTo(...lowerOrderUnits)\n .plus(duration);\n } else {\n return duration;\n }\n}\n","const numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\"\n};\n\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881]\n};\n\n// eslint-disable-next-line\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nexport function parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\nexport function digitRegex({ numberingSystem }, append = \"\") {\n return new RegExp(`${numberingSystems[numberingSystem || \"latn\"]}${append}`);\n}\n","import { parseMillis, isUndefined, untruncateYear, signedOffset, hasOwnProperty } from \"./util.js\";\nimport Formatter from \"./formatter.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport DateTime from \"../datetime.js\";\nimport { digitRegex, parseDigits } from \"./digits.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = i => i) {\n return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n return s.replace(/\\./, \"\\\\.?\");\n}\n\nfunction stripInsensitivities(s) {\n return s.replace(/\\./, \"\").toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) =>\n strings.findIndex(i => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex\n };\n }\n}\n\nfunction offset(regex, groups) {\n return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n // eslint-disable-next-line no-useless-escape\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = t => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n unitate = t => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\", false), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\", false), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true, false), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true, false), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false, false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false, false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false, false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false, false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true, false), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true, false), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n default:\n return literal(t);\n }\n };\n\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP\n };\n\n unit.token = token;\n\n return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\"\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\"\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\"\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\"\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour: {\n numeric: \"h\",\n \"2-digit\": \"hh\"\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\"\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\"\n }\n};\n\nfunction tokenForPart(part, locale, formatOpts) {\n const { type, value } = part;\n\n if (type === \"literal\") {\n return {\n literal: true,\n val: value\n };\n }\n\n const style = formatOpts[type];\n\n let val = partTypeStyleToTokenVal[type];\n if (typeof val === \"object\") {\n val = val[style];\n }\n\n if (val) {\n return {\n literal: false,\n val\n };\n }\n\n return undefined;\n}\n\nfunction buildRegex(units) {\n const re = units.map(u => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n const toField = token => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n\n let zone;\n if (!isUndefined(matches.Z)) {\n zone = new FixedOffsetZone(matches.Z);\n } else if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n } else {\n zone = null;\n }\n\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n\n return [vals, zone];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n\n return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n\n if (!formatOpts) {\n return token;\n }\n\n const formatter = Formatter.create(locale, formatOpts);\n const parts = formatter.formatDateTimeParts(getDummyDateTime());\n\n const tokens = parts.map(p => tokenForPart(p, locale, formatOpts));\n\n if (tokens.includes(undefined)) {\n return token;\n }\n\n return tokens;\n}\n\nfunction expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map(t => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nexport function explainFromTokens(locale, input, format) {\n const tokens = expandMacroTokens(Formatter.parseFormat(format), locale),\n units = tokens.map(t => unitForToken(t, locale)),\n disqualifyingUnit = units.find(t => t.invalidReason);\n\n if (disqualifyingUnit) {\n return { input, tokens, invalidReason: disqualifyingUnit.invalidReason };\n } else {\n const [regexString, handlers] = buildRegex(units),\n regex = RegExp(regexString, \"i\"),\n [rawMatches, matches] = match(input, regex, handlers),\n [result, zone] = matches ? dateTimeFromMatches(matches) : [null, null];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\n \"Can't include meridiem when specifying 24-hour format\"\n );\n }\n return { input, tokens, regex, rawMatches, matches, result, zone };\n }\n}\n\nexport function parseFromTokens(locale, input, format) {\n const { result, zone, invalidReason } = explainFromTokens(locale, input, format);\n return [result, zone, invalidReason];\n}\n","import {\n integerBetween,\n isLeapYear,\n timeObject,\n daysInYear,\n daysInMonth,\n weeksInWeekYear,\n isInteger\n} from \"./util.js\";\nimport Invalid from \"./invalid.js\";\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\n \"unit out of range\",\n `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n );\n}\n\nfunction dayOfWeek(year, month, day) {\n const js = new Date(Date.UTC(year, month - 1, day)).getUTCDay();\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex(i => i < ordinal),\n day = ordinal - table[month0];\n return { month: month0 + 1, day };\n}\n\n/**\n * @private\n */\n\nexport function gregorianToWeek(gregObj) {\n const { year, month, day } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = dayOfWeek(year, month, day);\n\n let weekNumber = Math.floor((ordinal - weekday + 10) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear);\n } else if (weekNumber > weeksInWeekYear(year)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return Object.assign({ weekYear, weekNumber, weekday }, timeObject(gregObj));\n}\n\nexport function weekToGregorian(weekData) {\n const { weekYear, weekNumber, weekday } = weekData,\n weekdayOfJan4 = dayOfWeek(weekYear, 1, 4),\n yearInDays = daysInYear(weekYear);\n\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 3,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n const { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(weekData));\n}\n\nexport function gregorianToOrdinal(gregData) {\n const { year, month, day } = gregData,\n ordinal = computeOrdinal(year, month, day);\n\n return Object.assign({ year, ordinal }, timeObject(gregData));\n}\n\nexport function ordinalToGregorian(ordinalData) {\n const { year, ordinal } = ordinalData,\n { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(ordinalData));\n}\n\nexport function hasInvalidWeekData(obj) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(obj.weekNumber, 1, weeksInWeekYear(obj.weekYear)),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.week);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\n\nexport function hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\n\nexport function hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\n\nexport function hasInvalidTimeData(obj) {\n const { hour, minute, second, millisecond } = obj;\n const validHour =\n integerBetween(hour, 0, 23) ||\n (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n","import Duration, { friendlyDuration } from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Settings from \"./settings.js\";\nimport Info from \"./info.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport {\n isUndefined,\n maybeArray,\n isDate,\n isNumber,\n bestBy,\n daysInMonth,\n daysInYear,\n isLeapYear,\n weeksInWeekYear,\n normalizeObject,\n roundTo,\n objToLocalTS\n} from \"./impl/util.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport diff from \"./impl/diff.js\";\nimport { parseRFC2822Date, parseISODate, parseHTTPDate, parseSQL } from \"./impl/regexParser.js\";\nimport { parseFromTokens, explainFromTokens } from \"./impl/tokenParser.js\";\nimport {\n gregorianToWeek,\n weekToGregorian,\n gregorianToOrdinal,\n ordinalToGregorian,\n hasInvalidGregorianData,\n hasInvalidWeekData,\n hasInvalidOrdinalData,\n hasInvalidTimeData\n} from \"./impl/conversions.js\";\nimport * as Formats from \"./impl/formats.js\";\nimport {\n InvalidArgumentError,\n ConflictingSpecificationError,\n InvalidUnitError,\n InvalidDateTimeError\n} from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid\n };\n return new DateTime(Object.assign({}, current, alts, { old: current }));\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n\n const d = new Date(ts);\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds()\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const keys = Object.keys(dur.values);\n if (keys.indexOf(\"milliseconds\") === -1) {\n keys.push(\"milliseconds\");\n }\n\n dur = dur.shiftTo(...keys);\n\n const oPre = inst.o,\n year = inst.c.year + dur.years,\n month = inst.c.month + dur.months + dur.quarters * 3,\n c = Object.assign({}, inst.c, {\n year,\n month,\n day: Math.min(inst.c.day, daysInMonth(year, month)) + dur.days + dur.weeks * 7\n }),\n millisToAdd = Duration.fromObject({\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n\n return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text) {\n const { setZone, zone } = opts;\n if (parsed && Object.keys(parsed).length !== 0) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(\n Object.assign(parsed, opts, {\n zone: interpretationZone,\n // setZone is a valid option in the calling methods, but not in fromObject\n setZone: undefined\n })\n );\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(\n new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n );\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid\n ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true\n }).formatDateTimeFromString(dt, format)\n : null;\n}\n\n// technical time formats (e.g. the time part of ISO 8601), take some options\n// and this commonizes their handling\nfunction toTechTimeFormat(\n dt,\n {\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset,\n includeZone = false,\n spaceZone = false,\n format = \"extended\"\n }\n) {\n let fmt = format === \"basic\" ? \"HHmm\" : \"HH:mm\";\n\n if (!suppressSeconds || dt.second !== 0 || dt.millisecond !== 0) {\n fmt += format === \"basic\" ? \"ss\" : \":ss\";\n if (!suppressMilliseconds || dt.millisecond !== 0) {\n fmt += \".SSS\";\n }\n }\n\n if ((includeZone || includeOffset) && spaceZone) {\n fmt += \" \";\n }\n\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += format === \"basic\" ? \"ZZZ\" : \"ZZ\";\n }\n\n return toTechFormat(dt, fmt);\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\n \"weekYear\",\n \"weekNumber\",\n \"weekday\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\"\n ],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\"\n }[unit.toLowerCase()];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, zone) {\n // assume we have the higher-order units\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zone.offset(tsNow),\n [ts, o] = objToTS(obj, offsetProvis, zone);\n\n return new DateTime({\n ts,\n zone,\n o\n });\n}\n\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = unit => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end\n .startOf(unit)\n .diff(start.startOf(unit), unit)\n .get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(0, opts.units[opts.units.length - 1]);\n}\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link local}, {@link utc}, and (most flexibly) {@link fromObject}. To create one from a standard string format, use {@link fromISO}, {@link fromHTTP}, and {@link fromRFC2822}. To create one from a custom string format, use {@link fromFormat}. To create one from a native JS date, use {@link fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link toObject}), use the {@link year}, {@link month},\n * {@link day}, {@link hour}, {@link minute}, {@link second}, {@link millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link weekYear}, {@link weekNumber}, and {@link weekday} accessors.\n * * **Configuration** See the {@link locale} and {@link numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link set}, {@link reconfigure}, {@link setZone}, {@link setLocale}, {@link plus}, {@link minus}, {@link endOf}, {@link startOf}, {@link toUTC}, and {@link toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link toRelative}, {@link toRelativeCalendar}, {@link toJSON}, {@link toISO}, {@link toHTTP}, {@link toObject}, {@link toRFC2822}, {@link toString}, {@link toLocaleString}, {@link toFormat}, {@link toMillis} and {@link toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nexport default class DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n\n let invalid =\n config.invalid ||\n (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n const ot = zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12) //~> 2017-03-12T00:00:00\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({ ts: Settings.now() });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n Settings.defaultZone\n );\n }\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765Z\n * @return {DateTime}\n */\n static utc(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({\n ts: Settings.now(),\n zone: FixedOffsetZone.utcInstance\n });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n FixedOffsetZone.utcInstance\n );\n }\n }\n\n /**\n * Create a DateTime from a Javascript Date object. Uses the default zone.\n * @param {Date} date - a Javascript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options)\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\n `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n );\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a Javascript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {string|Zone} [obj.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [obj.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} obj.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} obj.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @return {DateTime}\n */\n static fromObject(obj) {\n const zoneToUse = normalizeZone(obj.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zoneToUse.offset(tsNow),\n normalized = normalizeObject(obj, normalizeUnit, [\n \"zone\",\n \"locale\",\n \"outputCalendar\",\n \"numberingSystem\"\n ]),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber,\n loc = Locale.fromObject(obj);\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData\n ? hasInvalidWeekData(normalized)\n : containsOrdinal\n ? hasInvalidOrdinalData(normalized)\n : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData\n ? weekToGregorian(normalized)\n : containsOrdinal\n ? ordinalToGregorian(normalized)\n : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\n \"mismatched weekday\",\n `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n );\n }\n\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/parsing.html#table-of-tokens\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n }),\n [vals, parsedZone, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({ invalid });\n }\n }\n\n /**\n * Check if an object is a DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return (o && o.isLuxonDateTime) || false;\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.local().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.universal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return (\n this.offset > this.set({ month: 1 }).offset || this.offset > this.set({ month: 5 }).offset\n );\n }\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOpts(opts = {}) {\n const { locale, numberingSystem, calendar } = Formatter.create(\n this.loc.clone(opts),\n opts\n ).resolvedOptions(this);\n return { locale, numberingSystem, outputCalendar: calendar };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link plus}. You may wish to use {@link toLocal} and {@link toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, { ts: newTS, zone });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n return clone(this, { loc });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({ locale });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link reconfigure} and {@link setZone}.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const normalized = normalizeObject(values, normalizeUnit, []),\n settingWeekStuff =\n !isUndefined(normalized.weekYear) ||\n !isUndefined(normalized.weekNumber) ||\n !isUndefined(normalized.weekday);\n\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(Object.assign(gregorianToWeek(this.c), normalized));\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian(Object.assign(gregorianToOrdinal(this.c), normalized));\n } else {\n mixed = Object.assign(this.toObject(), normalized);\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, { ts, o });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.local().plus(123) //~> in 123 milliseconds\n * @example DateTime.local().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.local().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.local().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.local().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.local().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit) {\n if (!this.isValid) return this;\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n case \"milliseconds\":\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n o.weekday = 1;\n }\n\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'month', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit) {\n return this.isValid\n ? this.plus({ [unit]: 1 })\n .startOf(unit)\n .minus(1)\n : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options\n * @example DateTime.local().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.local().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.local().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.local().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param opts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @example DateTime.local().toLocaleString(); //=> 4/20/2017\n * @example DateTime.local().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString({ locale: 'en-gb' }); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.local().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.local().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.local().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.local().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.local().toLocaleString({ hour: '2-digit', minute: '2-digit', hour12: false }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(opts = Formats.DATE_SHORT) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTime(this)\n : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.local().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.local().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.local().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.local().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */\n toISO(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toISODate(opts)}T${this.toISOTime(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */\n toISODate({ format = \"extended\" } = {}) {\n let fmt = format === \"basic\" ? \"yyyyMMdd\" : \"yyyy-MM-dd\";\n if (this.year > 9999) {\n fmt = \"+\" + fmt;\n }\n\n return toTechFormat(this, fmt);\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n format = \"extended\"\n } = {}) {\n return toTechTimeFormat(this, {\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n format\n });\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime, always in UTC\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */\n toSQLDate() {\n return toTechFormat(this, \"yyyy-MM-dd\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.local().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.local().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.local().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({ includeOffset = true, includeZone = false } = {}) {\n return toTechTimeFormat(this, {\n includeOffset,\n includeZone,\n spaceZone: true\n });\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a Javascript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.local().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.c);\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a Javascript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\n this.invalid || otherDateTime.invalid,\n \"created by diffing an invalid DateTime\"\n );\n }\n\n const durOpts = Object.assign(\n { locale: this.locale, numberingSystem: this.numberingSystem },\n opts\n );\n\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.local(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @example DateTime.local().hasSame(otherDT, 'day'); //~> true if both the same calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit) {\n if (!this.isValid) return false;\n if (unit === \"millisecond\") {\n return this.valueOf() === otherDateTime.valueOf();\n } else {\n const inputMs = otherDateTime.valueOf();\n return this.startOf(unit) <= inputMs && inputMs <= this.endOf(unit);\n }\n }\n\n /**\n * Equality check\n * Two DateTimes are equal iff they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return (\n this.isValid &&\n other.isValid &&\n this.valueOf() === other.valueOf() &&\n this.zone.equals(other.zone) &&\n this.loc.equals(other.loc)\n );\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {boolean} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.local().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n * @example DateTime.local().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.local().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.local().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.local().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({ zone: this.zone }),\n padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n return diffRelative(\n base,\n this.plus(padding),\n Object.assign(options, {\n numeric: \"always\",\n units: [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"]\n })\n );\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.local().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.local().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n\n return diffRelative(\n options.base || DateTime.fromObject({ zone: this.zone }),\n this,\n Object.assign(options, {\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true\n })\n );\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return Formats.DATE_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return Formats.DATE_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return Formats.DATE_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return Formats.DATE_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return Formats.TIME_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return Formats.TIME_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return Formats.TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return Formats.TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return Formats.TIME_24_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return Formats.TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return Formats.TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return Formats.TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return Formats.DATETIME_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return Formats.DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return Formats.DATETIME_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return Formats.DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return Formats.DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return Formats.DATETIME_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return Formats.DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return Formats.DATETIME_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return Formats.DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\n `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n );\n }\n}\n"],"names":["LuxonError","Error","InvalidDateTimeError","reason","toMessage","InvalidIntervalError","InvalidDurationError","ConflictingSpecificationError","InvalidUnitError","unit","InvalidArgumentError","ZoneIsAbstractError","n","s","l","DATE_SHORT","year","month","day","DATE_MED","DATE_FULL","DATE_HUGE","weekday","TIME_SIMPLE","hour","minute","TIME_WITH_SECONDS","second","TIME_WITH_SHORT_OFFSET","timeZoneName","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","hour12","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","isUndefined","o","isNumber","isInteger","isString","isDate","Object","prototype","toString","call","hasIntl","Intl","DateTimeFormat","e","hasFormatToParts","formatToParts","hasRelative","RelativeTimeFormat","maybeArray","thing","Array","isArray","bestBy","arr","by","compare","length","undefined","reduce","best","next","pair","pick","obj","keys","a","k","hasOwnProperty","prop","integerBetween","bottom","top","floorMod","x","Math","floor","padStart","input","repeat","slice","parseInteger","string","parseInt","parseMillis","fraction","f","parseFloat","roundTo","number","digits","towardZero","factor","rounder","trunc","round","isLeapYear","daysInYear","daysInMonth","modMonth","modYear","objToLocalTS","d","Date","UTC","millisecond","setUTCFullYear","getUTCFullYear","weeksInWeekYear","weekYear","p1","last","p2","untruncateYear","parseZoneInfo","ts","offsetFormat","locale","timeZone","date","intlOpts","modified","assign","intl","parsed","find","m","type","toLowerCase","value","without","format","included","diffed","substring","trimmed","replace","signedOffset","offHourStr","offMinuteStr","offHour","Number","isNaN","offMin","offMinSigned","is","asNumber","numericValue","normalizeObject","normalizer","nonUnitKeys","normalized","u","indexOf","v","formatOffset","offset","hours","minutes","abs","sign","base","RangeError","timeObject","ianaRegex","stringify","JSON","sort","monthsLong","monthsShort","monthsNarrow","months","weekdaysLong","weekdaysShort","weekdaysNarrow","weekdays","meridiems","erasLong","erasShort","erasNarrow","eras","meridiemForDateTime","dt","weekdayForDateTime","monthForDateTime","eraForDateTime","formatRelativeTime","count","numeric","narrow","units","years","quarters","weeks","days","seconds","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","formatString","knownFormat","filtered","key","dateTimeHuge","Formats","stringifyTokens","splits","tokenToString","token","literal","val","macroTokenToFormatOpts","D","DD","DDD","DDDD","t","tt","ttt","tttt","T","TT","TTT","TTTT","ff","fff","ffff","F","FF","FFF","FFFF","Formatter","create","opts","parseFormat","fmt","current","currentFull","bracketed","i","c","charAt","push","formatOpts","loc","systemLoc","formatWithSystemDefault","redefaultToSystem","df","dtFormatter","formatDateTime","formatDateTimeParts","resolvedOptions","num","p","forceSimple","padTo","numberFormatter","formatDateTimeFromString","knownEnglish","listingMode","useDateTimeFormatter","outputCalendar","extract","isOffsetFixed","allowZ","isValid","zone","meridiem","English","standalone","maybeMacro","era","offsetName","zoneName","weekNumber","ordinal","quarter","formatDurationFromString","dur","tokenToField","lildur","mapped","get","tokens","realTokens","found","concat","collapsed","shiftTo","map","filter","Invalid","explanation","Zone","equals","otherZone","singleton","LocalZone","getTimezoneOffset","matchingRegex","RegExp","source","dtfCache","makeDTF","typeToPos","hackyOffset","dtf","formatted","exec","fMonth","fDay","fYear","fHour","fMinute","fSecond","partsOffset","filled","pos","ianaZoneCache","IANAZone","name","resetCache","isValidSpecifier","match","isValidZone","parseGMTOffset","specifier","valid","adjustedHour","asUTC","asTS","over","FixedOffsetZone","instance","utcInstance","parseSpecifier","r","fixed","InvalidZone","NaN","normalizeZone","defaultZone","lowered","now","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","throwOnInvalid","Settings","resetCaches","Locale","z","numberingSystem","intlDTCache","getCachedDTF","locString","intlNumCache","getCachedINF","inf","NumberFormat","intlRelCache","getCachedRTF","cacheKeyOpts","sysLocaleCache","systemLocale","computedSys","parseLocaleString","localeStr","uIndex","options","smaller","calendar","intlConfigString","mapMonths","ms","DateTime","utc","mapWeekdays","listStuff","defaultOK","englishFn","intlFn","mode","supportsFastNumbers","startsWith","PolyNumberFormatter","useGrouping","minimumIntegerDigits","PolyDateFormatter","universal","fromMillis","toJSDate","tokenFormat","PolyRelFormatter","isEnglish","style","rtf","fromOpts","defaultToEN","specifiedLocale","localeR","numberingSystemR","outputCalendarR","fromObject","numbering","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","weekdaysCache","monthsCache","meridiemCache","eraCache","fastNumbersCached","hasFTP","isActuallyEn","hasNoWeirdness","clone","alts","getOwnPropertyNames","redefaultToEN","formatStr","field","results","matching","fastNumbers","relFormatter","other","combineRegexes","regexes","full","combineExtractors","extractors","ex","mergedVals","mergedZone","cursor","parse","patterns","regex","extractor","simpleParse","ret","offsetRegex","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","isoYmdRegex","isoWeekRegex","isoOrdinalRegex","extractISOWeekData","extractISOOrdinalData","sqlYmdRegex","sqlTimeRegex","sqlTimeExtensionRegex","int","fallback","extractISOYmd","item","extractISOTime","extractISOOffset","local","fullOffset","extractIANAZone","isoDuration","extractISODuration","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","hasNegativePrefix","maybeNegate","milliseconds","obsOffsets","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","fromStrings","weekdayStr","result","rfc2822","extractRFC2822","obsOffset","milOffset","preprocessRFC2822","trim","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDataAndTime","extractISOTimeAndOffset","parseISODate","parseRFC2822Date","parseHTTPDate","parseISODuration","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOYmdTimeOffsetAndIANAZone","extractISOTimeOffsetAndIANAZone","parseSQL","INVALID","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits","reverseUnits","reverse","clear","conf","values","conversionAccuracy","Duration","antiTrunc","ceil","convert","matrix","fromMap","fromUnit","toMap","toUnit","conv","raw","sameSign","added","normalizeValues","vals","previous","config","accurate","invalid","isLuxonDuration","normalizeUnit","fromISO","text","week","isDuration","toFormat","fmtOpts","toObject","includeConfig","toISO","toJSON","valueOf","as","plus","duration","friendlyDuration","minus","negate","mapUnits","fn","set","mixed","reconfigure","normalize","built","accumulated","lastUnit","own","ak","down","negated","durationish","validateStartEnd","start","end","Interval","isLuxonInterval","fromDateTimes","builtStart","friendlyDateTime","builtEnd","validateError","after","before","split","isInterval","toDuration","startOf","diff","hasSame","isEmpty","isAfter","dateTime","isBefore","contains","splitAt","dateTimes","sorted","splitBy","divideEqually","numberOfParts","overlaps","abutsStart","abutsEnd","engulfs","intersection","union","merge","intervals","b","sofar","final","xor","currentCount","ends","time","flattened","difference","toISODate","toISOTime","dateFormat","separator","invalidReason","mapEndpoints","mapFn","Info","hasDST","proto","setZone","isValidIANAZone","monthsFormat","weekdaysFormat","features","intlTokens","zones","relative","dayDiff","earlier","later","utcDayStart","toUTC","keepLocalTime","highOrderDiffs","differs","lowestOrder","highWater","differ","delta","remainingMillis","lowerOrderUnits","numberingSystems","arab","arabext","bali","beng","deva","fullwide","gujr","hanidec","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","latn","numberingSystemsUTF16","hanidecChars","parseDigits","str","code","charCodeAt","search","min","max","digitRegex","append","MISSING_FTP","intUnit","post","deser","fixListRegex","stripInsensitivities","oneOf","strings","startIndex","join","findIndex","groups","h","simple","escapeToken","unitForToken","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","unitate","partTypeStyleToTokenVal","short","long","dayperiod","dayPeriod","tokenForPart","part","buildRegex","re","handlers","matches","all","matchIndex","dateTimeFromMatches","toField","Z","q","M","G","y","S","dummyDateTimeCache","getDummyDateTime","maybeExpandMacroToken","formatter","parts","includes","expandMacroTokens","explainFromTokens","disqualifyingUnit","regexString","rawMatches","parseFromTokens","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","getUTCDay","computeOrdinal","uncomputeOrdinal","table","month0","gregorianToWeek","gregObj","weekToGregorian","weekData","weekdayOfJan4","yearInDays","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","hasInvalidWeekData","validYear","validWeek","validWeekday","hasInvalidOrdinalData","validOrdinal","hasInvalidGregorianData","validMonth","validDay","hasInvalidTimeData","validHour","validMinute","validSecond","validMillisecond","MAX_DATE","unsupportedZone","possiblyCachedWeekData","inst","old","fixOffset","localTS","tz","utcGuess","o2","o3","tsToObj","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","objToTS","adjustTime","oPre","millisToAdd","parseDataToDateTime","parsedZone","interpretationZone","toTechFormat","toTechTimeFormat","suppressSeconds","suppressMilliseconds","includeOffset","includeZone","spaceZone","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedWeekUnits","orderedOrdinalUnits","weeknumber","weeksnumber","weeknumbers","weekyear","weekyears","quickDT","tsNow","offsetProvis","diffRelative","calendary","unchanged","ot","_zone","isLuxonDateTime","fromJSDate","zoneToUse","fromSeconds","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","useWeekData","defaultValues","objNow","foundFirst","higherOrderInvalid","gregorian","tsFinal","offsetFinal","fromRFC2822","fromHTTP","fromFormat","localeToUse","fromString","fromSQL","isDateTime","resolvedLocaleOpts","toLocal","keepCalendarTime","newTS","offsetGuess","asObj","setLocale","settingWeekStuff","normalizedUnit","endOf","toLocaleString","toLocaleParts","toISOWeekDate","toRFC2822","toHTTP","toSQLDate","toSQLTime","toSQL","toMillis","toSeconds","toBSON","otherDateTime","durOpts","otherIsLater","diffNow","until","inputMs","toRelative","padding","toRelativeCalendar","every","fromFormatExplain","fromStringExplain","dateTimeish"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"luxon.js","sources":["../../src/errors.js","../../src/impl/formats.js","../../src/impl/util.js","../../src/impl/english.js","../../src/impl/formatter.js","../../src/impl/invalid.js","../../src/zone.js","../../src/zones/localZone.js","../../src/zones/IANAZone.js","../../src/zones/fixedOffsetZone.js","../../src/zones/invalidZone.js","../../src/impl/zoneUtil.js","../../src/settings.js","../../src/impl/locale.js","../../src/impl/regexParser.js","../../src/duration.js","../../src/interval.js","../../src/info.js","../../src/impl/diff.js","../../src/impl/digits.js","../../src/impl/tokenParser.js","../../src/impl/conversions.js","../../src/datetime.js"],"sourcesContent":["// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nclass LuxonError extends Error {}\n\n/**\n * @private\n */\nexport class InvalidDateTimeError extends LuxonError {\n constructor(reason) {\n super(`Invalid DateTime: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidIntervalError extends LuxonError {\n constructor(reason) {\n super(`Invalid Interval: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidDurationError extends LuxonError {\n constructor(reason) {\n super(`Invalid Duration: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class ConflictingSpecificationError extends LuxonError {}\n\n/**\n * @private\n */\nexport class InvalidUnitError extends LuxonError {\n constructor(unit) {\n super(`Invalid unit ${unit}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidArgumentError extends LuxonError {}\n\n/**\n * @private\n */\nexport class ZoneIsAbstractError extends LuxonError {\n constructor() {\n super(\"Zone is an abstract class\");\n }\n}\n","/**\n * @private\n */\n\nconst n = \"numeric\",\n s = \"short\",\n l = \"long\";\n\nexport const DATE_SHORT = {\n year: n,\n month: n,\n day: n\n};\n\nexport const DATE_MED = {\n year: n,\n month: s,\n day: n\n};\n\nexport const DATE_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s\n};\n\nexport const DATE_FULL = {\n year: n,\n month: l,\n day: n\n};\n\nexport const DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l\n};\n\nexport const TIME_SIMPLE = {\n hour: n,\n minute: n\n};\n\nexport const TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n\n};\n\nexport const TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n\nexport const TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23', always 24-hour.\n */\nexport const TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 EDT', always 24-hour.\n */\nexport const TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: s\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 Eastern Daylight Time', always 24-hour.\n */\nexport const TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: l\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s\n};\n\nexport const DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l\n};\n\nexport const DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n","/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\nimport { InvalidArgumentError } from \"../errors.js\";\n\n/**\n * @private\n */\n\n// TYPES\n\nexport function isUndefined(o) {\n return typeof o === \"undefined\";\n}\n\nexport function isNumber(o) {\n return typeof o === \"number\";\n}\n\nexport function isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\n\nexport function isString(o) {\n return typeof o === \"string\";\n}\n\nexport function isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nexport function hasIntl() {\n try {\n return typeof Intl !== \"undefined\" && Intl.DateTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\nexport function hasFormatToParts() {\n return !isUndefined(Intl.DateTimeFormat.prototype.formatToParts);\n}\n\nexport function hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nexport function maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\n\nexport function bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\n\nexport function pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\n\nexport function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n// NUMBERS AND STRINGS\n\nexport function integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nexport function floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\n\nexport function padStart(input, n = 2) {\n if (input.toString().length < n) {\n return (\"0\".repeat(n) + input).slice(-n);\n } else {\n return input.toString();\n }\n}\n\nexport function parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\n\nexport function parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\n\nexport function roundTo(number, digits, towardZero = false) {\n const factor = 10 ** digits,\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nexport function isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// covert a calendar object to a local timestamp (epoch, but with the offset baked in)\nexport function objToLocalTS(obj) {\n let d = Date.UTC(\n obj.year,\n obj.month - 1,\n obj.day,\n obj.hour,\n obj.minute,\n obj.second,\n obj.millisecond\n );\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n return +d;\n}\n\nexport function weeksInWeekYear(weekYear) {\n const p1 =\n (weekYear +\n Math.floor(weekYear / 4) -\n Math.floor(weekYear / 100) +\n Math.floor(weekYear / 400)) %\n 7,\n last = weekYear - 1,\n p2 = (last + Math.floor(last / 4) - Math.floor(last / 100) + Math.floor(last / 400)) % 7;\n return p1 === 4 || p2 === 3 ? 53 : 52;\n}\n\nexport function untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > 60 ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nexport function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hour12: false,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\"\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n const modified = Object.assign({ timeZoneName: offsetFormat }, intlOpts),\n intl = hasIntl();\n\n if (intl && hasFormatToParts()) {\n const parsed = new Intl.DateTimeFormat(locale, modified)\n .formatToParts(date)\n .find(m => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n } else if (intl) {\n // this probably doesn't work for all locales\n const without = new Intl.DateTimeFormat(locale, intlOpts).format(date),\n included = new Intl.DateTimeFormat(locale, modified).format(date),\n diffed = included.substring(without.length),\n trimmed = diffed.replace(/^[, \\u200e]+/, \"\");\n return trimmed;\n } else {\n return null;\n }\n}\n\n// signedOffset('-5', '30') -> -330\nexport function signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nexport function asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue))\n throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\n\nexport function normalizeObject(obj, normalizer, nonUnitKeys) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n if (nonUnitKeys.indexOf(u) >= 0) continue;\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\nexport function formatOffset(offset, format) {\n const hours = Math.trunc(Math.abs(offset / 60)),\n minutes = Math.trunc(Math.abs(offset % 60)),\n sign = offset >= 0 ? \"+\" : \"-\";\n\n switch (format) {\n case \"short\":\n return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return `${sign}${hours}${minutes > 0 ? `:${minutes}` : \"\"}`;\n case \"techie\":\n return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\n\nexport function timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n\nexport const ianaRegex = /[A-Za-z_+-]{1,256}(:?\\/[A-Za-z_+-]{1,256}(\\/[A-Za-z_+-]{1,256})?)?/;\n","import * as Formats from \"./formats.js\";\nimport { pick } from \"./util.js\";\n\nfunction stringify(obj) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n}\n\n/**\n * @private\n */\n\nexport const monthsLong = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\n\nexport const monthsShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n];\n\nexport const monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nexport function months(length) {\n switch (length) {\n case \"narrow\":\n return monthsNarrow;\n case \"short\":\n return monthsShort;\n case \"long\":\n return monthsLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\n\nexport const weekdaysLong = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\"\n];\n\nexport const weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nexport const weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nexport function weekdays(length) {\n switch (length) {\n case \"narrow\":\n return weekdaysNarrow;\n case \"short\":\n return weekdaysShort;\n case \"long\":\n return weekdaysLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\n\nexport const meridiems = [\"AM\", \"PM\"];\n\nexport const erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nexport const erasShort = [\"BC\", \"AD\"];\n\nexport const erasNarrow = [\"B\", \"A\"];\n\nexport function eras(length) {\n switch (length) {\n case \"narrow\":\n return erasNarrow;\n case \"short\":\n return erasShort;\n case \"long\":\n return erasLong;\n default:\n return null;\n }\n}\n\nexport function meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nexport function weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\n\nexport function monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\n\nexport function eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nexport function formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"]\n };\n\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n default: // fall through\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow\n ? singular\n ? lilUnits[1]\n : lilUnits[2] || lilUnits[1]\n : singular\n ? units[unit][0]\n : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nexport function formatString(knownFormat) {\n // these all have the offsets removed because we don't have access to them\n // without all the intl stuff this is backfilling\n const filtered = pick(knownFormat, [\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n \"hour12\"\n ]),\n key = stringify(filtered),\n dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n switch (key) {\n case stringify(Formats.DATE_SHORT):\n return \"M/d/yyyy\";\n case stringify(Formats.DATE_MED):\n return \"LLL d, yyyy\";\n case stringify(Formats.DATE_MED_WITH_WEEKDAY):\n return \"EEE, LLL d, yyyy\";\n case stringify(Formats.DATE_FULL):\n return \"LLLL d, yyyy\";\n case stringify(Formats.DATE_HUGE):\n return \"EEEE, LLLL d, yyyy\";\n case stringify(Formats.TIME_SIMPLE):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_SECONDS):\n return \"h:mm:ss a\";\n case stringify(Formats.TIME_WITH_SHORT_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_LONG_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_24_SIMPLE):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_SECONDS):\n return \"HH:mm:ss\";\n case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_LONG_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.DATETIME_SHORT):\n return \"M/d/yyyy, h:mm a\";\n case stringify(Formats.DATETIME_MED):\n return \"LLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL):\n return \"LLLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_HUGE):\n return dateTimeHuge;\n case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):\n return \"M/d/yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_SECONDS):\n return \"LLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):\n return \"EEE, d LLL yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL_WITH_SECONDS):\n return \"LLLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):\n return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n default:\n return dateTimeHuge;\n }\n}\n","import * as English from \"./english.js\";\nimport * as Formats from \"./formats.js\";\nimport { hasFormatToParts, padStart } from \"./util.js\";\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\n\nconst macroTokenToFormatOpts = {\n D: Formats.DATE_SHORT,\n DD: Formats.DATE_MED,\n DDD: Formats.DATE_FULL,\n DDDD: Formats.DATE_HUGE,\n t: Formats.TIME_SIMPLE,\n tt: Formats.TIME_WITH_SECONDS,\n ttt: Formats.TIME_WITH_SHORT_OFFSET,\n tttt: Formats.TIME_WITH_LONG_OFFSET,\n T: Formats.TIME_24_SIMPLE,\n TT: Formats.TIME_24_WITH_SECONDS,\n TTT: Formats.TIME_24_WITH_SHORT_OFFSET,\n TTTT: Formats.TIME_24_WITH_LONG_OFFSET,\n f: Formats.DATETIME_SHORT,\n ff: Formats.DATETIME_MED,\n fff: Formats.DATETIME_FULL,\n ffff: Formats.DATETIME_HUGE,\n F: Formats.DATETIME_SHORT_WITH_SECONDS,\n FF: Formats.DATETIME_MED_WITH_SECONDS,\n FFF: Formats.DATETIME_FULL_WITH_SECONDS,\n FFFF: Formats.DATETIME_HUGE_WITH_SECONDS\n};\n\n/**\n * @private\n */\n\nexport default class Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n\n static parseFormat(fmt) {\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({ literal: false, val: currentFull });\n }\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n\n return splits;\n }\n\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTime(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTimeParts(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.formatToParts();\n }\n\n resolvedOptions(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.resolvedOptions();\n }\n\n num(n, p = 0) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n const opts = Object.assign({}, this.opts);\n\n if (p > 0) {\n opts.padTo = p;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n }\n\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter =\n this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\" && hasFormatToParts(),\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = opts => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () =>\n knownEnglish\n ? English.meridiemForDateTime(dt)\n : string({ hour: \"numeric\", hour12: true }, \"dayperiod\"),\n month = (length, standalone) =>\n knownEnglish\n ? English.monthForDateTime(dt, length)\n : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n weekday = (length, standalone) =>\n knownEnglish\n ? English.weekdayForDateTime(dt, length)\n : string(\n standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n \"weekday\"\n ),\n maybeMacro = token => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = length =>\n knownEnglish ? English.eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n tokenToString = token => {\n // Where possible: http://cldr.unicode.org/translation/date-time#TOC-Stand-Alone-vs.-Format-Styles\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n case \"ZZ\":\n // like +06:00\n return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n case \"ZZZ\":\n // like +0600\n return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter\n ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter\n ? string({ month: \"2-digit\" }, \"month\")\n : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter\n ? string({ year: \"2-digit\" }, \"year\")\n : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n\n formatDurationFromString(dur, fmt) {\n const tokenToField = token => {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = lildur => token => {\n const mapped = tokenToField(token);\n if (mapped) {\n return this.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(\n (found, { literal, val }) => (literal ? found : found.concat(val)),\n []\n ),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter(t => t));\n return stringifyTokens(tokens, tokenToString(collapsed));\n }\n}\n","export default class Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n","/* eslint no-unused-vars: \"off\" */\nimport { ZoneIsAbstractError } from \"./errors.js\";\n\n/**\n * @interface\n */\nexport default class Zone {\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get type() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n get name() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n get universal() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */\n get isValid() {\n throw new ZoneIsAbstractError();\n }\n}\n","import { formatOffset, parseZoneInfo, hasIntl } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * Represents the local zone for this Javascript environment.\n * @implements {Zone}\n */\nexport default class LocalZone extends Zone {\n /**\n * Get a singleton instance of the local zone\n * @return {LocalZone}\n */\n static get instance() {\n if (singleton === null) {\n singleton = new LocalZone();\n }\n return singleton;\n }\n\n /** @override **/\n get type() {\n return \"local\";\n }\n\n /** @override **/\n get name() {\n if (hasIntl()) {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n } else return \"local\";\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"local\";\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import { formatOffset, parseZoneInfo, isUndefined, ianaRegex, objToLocalTS } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nconst matchingRegex = RegExp(`^${ianaRegex.source}$`);\n\nlet dtfCache = {};\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n });\n }\n return dtfCache[zone];\n}\n\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n};\n\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed;\n return [fYear, fMonth, fDay, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n const formatted = dtf.formatToParts(date),\n filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const { type, value } = formatted[i],\n pos = typeToPos[type];\n\n if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\n\nlet ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nexport default class IANAZone extends Zone {\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n static create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n return ianaZoneCache[name];\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Fantasia/Castle\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return !!(s && s.match(matchingRegex));\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n // Etc/GMT+8 -> -480\n /** @ignore */\n static parseGMTOffset(specifier) {\n if (specifier) {\n const match = specifier.match(/^Etc\\/GMT([+-]\\d{1,2})$/i);\n if (match) {\n return -60 * parseInt(match[1]);\n }\n }\n return null;\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /** @override **/\n get type() {\n return \"iana\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n const date = new Date(ts),\n dtf = makeDTF(this.name),\n [year, month, day, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date),\n // work around https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /** @override **/\n get isValid() {\n return this.valid;\n }\n}\n","import { formatOffset, signedOffset } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nexport default class FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /** @override **/\n get type() {\n return \"fixed\";\n }\n\n /** @override **/\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n /** @override **/\n offsetName() {\n return this.name;\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /** @override **/\n get universal() {\n return true;\n }\n\n /** @override **/\n offset() {\n return this.fixed;\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import Zone from \"../zone.js\";\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nexport default class InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n","/**\n * @private\n */\n\nimport Zone from \"../zone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport InvalidZone from \"../zones/invalidZone.js\";\n\nimport { isUndefined, isString, isNumber } from \"./util.js\";\n\nexport function normalizeZone(input, defaultZone) {\n let offset;\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"local\") return defaultZone;\n else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n else if ((offset = IANAZone.parseGMTOffset(input)) != null) {\n // handle Etc/GMT-4, which V8 chokes on\n return FixedOffsetZone.instance(offset);\n } else if (IANAZone.isValidSpecifier(lowered)) return IANAZone.create(input);\n else return FixedOffsetZone.parseSpecifier(lowered) || new InvalidZone(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && input.offset && typeof input.offset === \"number\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n","import LocalZone from \"./zones/localZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport Locale from \"./impl/locale.js\";\n\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nlet now = () => Date.now(),\n defaultZone = null, // not setting this directly to LocalZone.instance bc loading order issues\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n throwOnInvalid = false;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nexport default class Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Get the default time zone to create DateTimes in.\n * @type {string}\n */\n static get defaultZoneName() {\n return Settings.defaultZone.name;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * @type {string}\n */\n static set defaultZoneName(z) {\n if (!z) {\n defaultZone = null;\n } else {\n defaultZone = normalizeZone(z);\n }\n }\n\n /**\n * Get the default time zone object to create DateTimes in. Does not affect existing instances.\n * @type {Zone}\n */\n static get defaultZone() {\n return defaultZone || LocalZone.instance;\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n }\n}\n","import { hasFormatToParts, hasIntl, padStart, roundTo, hasRelative } from \"./util.js\";\nimport * as English from \"./english.js\";\nimport Settings from \"../settings.js\";\nimport DateTime from \"../datetime.js\";\nimport Formatter from \"./formatter.js\";\n\nlet intlDTCache = {};\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlNumCache = {};\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\n\nlet intlRelCache = {};\nfunction getCachedRTF(locString, opts = {}) {\n const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else if (hasIntl()) {\n const computedSys = new Intl.DateTimeFormat().resolvedOptions().locale;\n // node sometimes defaults to \"und\". Override that because that is dumb\n sysLocaleCache = !computedSys || computedSys === \"und\" ? \"en-US\" : computedSys;\n return sysLocaleCache;\n } else {\n sysLocaleCache = \"en-US\";\n return sysLocaleCache;\n }\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n const smaller = localeStr.substring(0, uIndex);\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n } catch (e) {\n options = getCachedDTF(smaller).resolvedOptions();\n }\n\n const { numberingSystem, calendar } = options;\n // return the smaller one so that we can append the calendar and numbering overrides to it\n return [smaller, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (hasIntl()) {\n if (outputCalendar || numberingSystem) {\n localeStr += \"-u\";\n\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n } else {\n return [];\n }\n}\n\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2016, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction listStuff(loc, length, defaultOK, englishFn, intlFn) {\n const mode = loc.listingMode(defaultOK);\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return (\n loc.numberingSystem === \"latn\" ||\n !loc.locale ||\n loc.locale.startsWith(\"en\") ||\n (hasIntl() && new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\")\n );\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n if (!forceSimple && hasIntl()) {\n const intlOpts = { useGrouping: false };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n this.hasIntl = hasIntl();\n\n let z;\n if (dt.zone.universal && this.hasIntl) {\n // Chromium doesn't support fixed-offset zones like Etc/GMT+8 in its formatter,\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=364374.\n // So we have to make do. Two cases:\n // 1. The format options tell us to show the zone. We can't do that, so the best\n // we can do is format the date in UTC.\n // 2. The format options don't tell us to show the zone. Then we can adjust them\n // the time and tell the formatter to show it to us in UTC, so that the time is right\n // and the bad zone doesn't show up.\n // We can clean all this up when Chrome fixes this.\n z = \"UTC\";\n if (opts.timeZoneName) {\n this.dt = dt;\n } else {\n this.dt = dt.offset === 0 ? dt : DateTime.fromMillis(dt.ts + dt.offset * 60 * 1000);\n }\n } else if (dt.zone.type === \"local\") {\n this.dt = dt;\n } else {\n this.dt = dt;\n z = dt.zone.name;\n }\n\n if (this.hasIntl) {\n const intlOpts = Object.assign({}, this.opts);\n if (z) {\n intlOpts.timeZone = z;\n }\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n }\n\n format() {\n if (this.hasIntl) {\n return this.dtf.format(this.dt.toJSDate());\n } else {\n const tokenFormat = English.formatString(this.opts),\n loc = Locale.create(\"en-US\");\n return Formatter.create(loc).formatDateTimeFromString(this.dt, tokenFormat);\n }\n }\n\n formatToParts() {\n if (this.hasIntl && hasFormatToParts()) {\n return this.dtf.formatToParts(this.dt.toJSDate());\n } else {\n // This is kind of a cop out. We actually could do this for English. However, we couldn't do it for intl strings\n // and IMO it's too weird to have an uncanny valley like that\n return [];\n }\n }\n\n resolvedOptions() {\n if (this.hasIntl) {\n return this.dtf.resolvedOptions();\n } else {\n return {\n locale: \"en-US\",\n numberingSystem: \"latn\",\n outputCalendar: \"gregory\"\n };\n }\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = Object.assign({ style: \"long\" }, opts);\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return English.formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\n\n/**\n * @private\n */\n\nexport default class Locale {\n static fromOpts(opts) {\n return Locale.create(opts.locale, opts.numberingSystem, opts.outputCalendar, opts.defaultToEN);\n }\n\n static create(locale, numberingSystem, outputCalendar, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale,\n // the system locale is useful for human readable strings but annoying for parsing/formatting known formats\n localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale()),\n numberingSystemR = numberingSystem || Settings.defaultNumberingSystem,\n outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n return new Locale(localeR, numberingSystemR, outputCalendarR, specifiedLocale);\n }\n\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n }\n\n static fromObject({ locale, numberingSystem, outputCalendar } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar);\n }\n\n constructor(locale, numbering, outputCalendar, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n this.weekdaysCache = { format: {}, standalone: {} };\n this.monthsCache = { format: {}, standalone: {} };\n this.meridiemCache = null;\n this.eraCache = {};\n\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n\n listingMode(defaultOK = true) {\n const intl = hasIntl(),\n hasFTP = intl && hasFormatToParts(),\n isActuallyEn = this.isEnglish(),\n hasNoWeirdness =\n (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n\n if (!hasFTP && !(isActuallyEn && hasNoWeirdness) && !defaultOK) {\n return \"error\";\n } else if (!hasFTP || (isActuallyEn && hasNoWeirdness)) {\n return \"en\";\n } else {\n return \"intl\";\n }\n }\n\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(\n alts.locale || this.specifiedLocale,\n alts.numberingSystem || this.numberingSystem,\n alts.outputCalendar || this.outputCalendar,\n alts.defaultToEN || false\n );\n }\n }\n\n redefaultToEN(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: true }));\n }\n\n redefaultToSystem(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: false }));\n }\n\n months(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.months, () => {\n const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n this.monthsCache[formatStr][length] = mapMonths(dt => this.extract(dt, intl, \"month\"));\n }\n return this.monthsCache[formatStr][length];\n });\n }\n\n weekdays(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.weekdays, () => {\n const intl = format\n ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n : { weekday: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays(dt =>\n this.extract(dt, intl, \"weekday\")\n );\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n\n meridiems(defaultOK = true) {\n return listStuff(\n this,\n undefined,\n defaultOK,\n () => English.meridiems,\n () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = { hour: \"numeric\", hour12: true };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n dt => this.extract(dt, intl, \"dayperiod\")\n );\n }\n\n return this.meridiemCache;\n }\n );\n }\n\n eras(length, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.eras, () => {\n const intl = { era: length };\n\n // This is utter bullshit. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map(dt =>\n this.extract(dt, intl, \"era\")\n );\n }\n\n return this.eraCache[length];\n });\n }\n\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find(m => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n\n isEnglish() {\n return (\n this.locale === \"en\" ||\n this.locale.toLowerCase() === \"en-us\" ||\n (hasIntl() && new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\"))\n );\n }\n\n equals(other) {\n return (\n this.locale === other.locale &&\n this.numberingSystem === other.numberingSystem &&\n this.outputCalendar === other.outputCalendar\n );\n }\n}\n","import {\n untruncateYear,\n signedOffset,\n parseInteger,\n parseMillis,\n ianaRegex,\n isUndefined\n} from \"./util.js\";\nimport * as English from \"./english.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n return m =>\n extractors\n .reduce(\n ([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [Object.assign(mergedVals, val), mergedZone || zone, next];\n },\n [{}, null, 1]\n )\n .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\n\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/,\n isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,30}))?)?)?/,\n isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${offsetRegex.source}?`),\n isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`),\n isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/,\n isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/,\n isoOrdinalRegex = /(\\d{4})-?(\\d{3})/,\n extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\"),\n extractISOOrdinalData = simpleParse(\"year\", \"ordinal\"),\n sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/, // dumbed-down version of the ISO one\n sqlTimeRegex = RegExp(\n `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n ),\n sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1)\n };\n\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n const item = {\n hour: int(match, cursor, 0),\n minute: int(match, cursor + 1, 0),\n second: int(match, cursor + 2, 0),\n millisecond: parseMillis(match[cursor + 3])\n };\n\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO duration parsing\n\nconst isoDuration = /^-?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)?)?)$/;\n\nfunction extractISODuration(match) {\n const [\n s,\n yearStr,\n monthStr,\n weekStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr,\n millisecondsStr\n ] = match;\n\n const hasNegativePrefix = s[0] === \"-\";\n\n const maybeNegate = num => (num && hasNegativePrefix ? -num : num);\n\n return [\n {\n years: maybeNegate(parseInteger(yearStr)),\n months: maybeNegate(parseInteger(monthStr)),\n weeks: maybeNegate(parseInteger(weekStr)),\n days: maybeNegate(parseInteger(dayStr)),\n hours: maybeNegate(parseInteger(hourStr)),\n minutes: maybeNegate(parseInteger(minuteStr)),\n seconds: maybeNegate(parseInteger(secondStr)),\n milliseconds: maybeNegate(parseMillis(millisecondsStr))\n }\n ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\n\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: English.monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr)\n };\n\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday =\n weekdayStr.length > 3\n ? English.weekdaysLong.indexOf(weekdayStr) + 1\n : English.weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 = /^(?:(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)))$/;\n\nfunction extractRFC2822(match) {\n const [\n ,\n weekdayStr,\n dayStr,\n monthStr,\n yearStr,\n hourStr,\n minuteStr,\n secondStr,\n obsOffset,\n milOffset,\n offHourStr,\n offMinuteStr\n ] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, \" \")\n .replace(/(\\s\\s+)/g, \" \")\n .trim();\n}\n\n// http date\n\nconst rfc1123 = /^(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$/,\n rfc850 = /^(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$/,\n ascii = /^(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})$/;\n\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n extractISOWeekData,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOOrdinalDataAndTime = combineExtractors(extractISOOrdinalData, extractISOTime);\nconst extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset);\n\n/**\n * @private\n */\n\nexport function parseISODate(s) {\n return parse(\n s,\n [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDataAndTime],\n [isoTimeCombinedRegex, extractISOTimeAndOffset]\n );\n}\n\nexport function parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nexport function parseHTTPDate(s) {\n return parse(\n s,\n [rfc1123, extractRFC1123Or850],\n [rfc850, extractRFC1123Or850],\n [ascii, extractASCII]\n );\n}\n\nexport function parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOYmdTimeOffsetAndIANAZone = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\nexport function parseSQL(s) {\n return parse(\n s,\n [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeOffsetAndIANAZone],\n [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n );\n}\n","import { InvalidArgumentError, InvalidDurationError, InvalidUnitError } from \"./errors.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Locale from \"./impl/locale.js\";\nimport { parseISODuration } from \"./impl/regexParser.js\";\nimport {\n asNumber,\n hasOwnProperty,\n isNumber,\n isUndefined,\n normalizeObject,\n roundTo\n} from \"./impl/util.js\";\nimport Settings from \"./settings.js\";\n\nconst INVALID = \"Invalid Duration\";\n\n// unit conversion constants\nconst lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000\n },\n hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n minutes: { seconds: 60, milliseconds: 60 * 1000 },\n seconds: { milliseconds: 1000 }\n },\n casualMatrix = Object.assign(\n {\n years: {\n quarters: 4,\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n seconds: 91 * 24 * 60 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n ),\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = Object.assign(\n {\n years: {\n quarters: 4,\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: (daysInYearAccurate * 24) / 4,\n minutes: (daysInYearAccurate * 24 * 60) / 4,\n seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n );\n\n// units ordered by size\nconst orderedUnits = [\n \"years\",\n \"quarters\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n];\n\nconst reverseUnits = orderedUnits.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : Object.assign({}, dur.values, alts.values || {}),\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy\n };\n return new Duration(conf);\n}\n\nfunction antiTrunc(n) {\n return n < 0 ? Math.floor(n) : Math.ceil(n);\n}\n\n// NB: mutates parameters\nfunction convert(matrix, fromMap, fromUnit, toMap, toUnit) {\n const conv = matrix[toUnit][fromUnit],\n raw = fromMap[fromUnit] / conv,\n sameSign = Math.sign(raw) === Math.sign(toMap[toUnit]),\n // ok, so this is wild, but see the matrix in the tests\n added =\n !sameSign && toMap[toUnit] !== 0 && Math.abs(raw) <= 1 ? antiTrunc(raw) : Math.trunc(raw);\n toMap[toUnit] += added;\n fromMap[fromUnit] -= added * conv;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n reverseUnits.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n convert(matrix, vals, previous, vals, current);\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime.plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration.years}, {@link Duration.months}, {@link Duration.weeks}, {@link Duration.days}, {@link Duration.hours}, {@link Duration.minutes}, {@link Duration.seconds}, {@link Duration.milliseconds} accessors.\n * * **Configuration** See {@link Duration.locale} and {@link Duration.numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration.plus}, {@link Duration.minus}, {@link Duration.normalize}, {@link Duration.set}, {@link Duration.reconfigure}, {@link Duration.shiftTo}, and {@link Duration.negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration.as}, {@link Duration.toISO}, {@link Duration.toFormat}, and {@link Duration.toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nexport default class Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = accurate ? accurateMatrix : casualMatrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject(Object.assign({ milliseconds: count }, opts));\n }\n\n /**\n * Create a Duration from a Javascript object with keys like 'years' and 'hours.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {string} [obj.locale='en-US'] - the locale to use\n * @param {string} obj.numberingSystem - the numbering system to use\n * @param {string} [obj.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromObject(obj) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\n `Duration.fromObject: argument expected to be an object, got ${\n obj === null ? \"null\" : typeof obj\n }`\n );\n }\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit, [\n \"locale\",\n \"numberingSystem\",\n \"conversionAccuracy\",\n \"zone\" // a bit of debt; it's super inconvenient internally not to be able to blindly pass this\n ]),\n loc: Locale.fromObject(obj),\n conversionAccuracy: obj.conversionAccuracy\n });\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n const obj = Object.assign(parsed, opts);\n return Duration.fromObject(obj);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({ invalid });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\"\n }[unit ? unit.toLowerCase() : unit];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return (o && o.isLuxonDuration) || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * The duration will be converted to the set of units in the format string using {@link Duration.shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = Object.assign({}, opts, {\n floor: opts.round !== false && opts.floor !== false\n });\n return this.isValid\n ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a Javascript object with this Duration's values.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.values);\n\n if (opts.includeConfig) {\n base.conversionAccuracy = this.conversionAccuracy;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n valueOf() {\n return this.as(\"milliseconds\");\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration),\n result = {};\n\n for (const k of orderedUnits) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone(this, { values: result }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit((x, u) => u === \"hour\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone(this, { values: result }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).years //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).months //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).days //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const mixed = Object.assign(this.values, normalizeObject(values, Duration.normalizeUnit, []));\n return clone(this, { values: mixed });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({ locale, numberingSystem, conversionAccuracy } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem }),\n opts = { loc };\n\n if (conversionAccuracy) {\n opts.conversionAccuracy = conversionAccuracy;\n }\n\n return clone(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map(u => Duration.normalizeUnit(u));\n\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n\n for (const k of orderedUnits) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = own - i; // we'd like to absorb these fractions in another unit\n\n // plus anything further down the chain that should be rolled up in to this\n for (const down in vals) {\n if (orderedUnits.indexOf(down) > orderedUnits.indexOf(k)) {\n convert(this.matrix, vals, down, built, k);\n }\n }\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] +=\n key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n return clone(this, { values: built }, true).normalize();\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = -this.values[k];\n }\n return clone(this, { values: negated }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n for (const u of orderedUnits) {\n if (this.values[u] !== other.values[u]) {\n return false;\n }\n }\n return true;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDuration(durationish) {\n if (isNumber(durationish)) {\n return Duration.fromMillis(durationish);\n } else if (Duration.isDuration(durationish)) {\n return durationish;\n } else if (typeof durationish === \"object\") {\n return Duration.fromObject(durationish);\n } else {\n throw new InvalidArgumentError(\n `Unknown duration argument ${durationish} of type ${typeof durationish}`\n );\n }\n}\n","import DateTime, { friendlyDateTime } from \"./datetime.js\";\nimport Duration, { friendlyDuration } from \"./duration.js\";\nimport Settings from \"./settings.js\";\nimport { InvalidArgumentError, InvalidIntervalError } from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\n \"end before start\",\n `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n );\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link fromDateTimes}, {@link after}, {@link before}, or {@link fromISO}.\n * * **Accessors** Use {@link start} and {@link end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link count}, {@link length}, {@link hasSame}, {@link contains}, {@link isAfter}, or {@link isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link set}, {@link splitAt}, {@link splitBy}, {@link divideEqually}, {@link merge}, {@link xor}, {@link union}, {@link intersection}, or {@link difference}.\n * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs}.\n * * **Output** To convert the Interval into other representations, see {@link toString}, {@link toISO}, {@link toISODate}, {@link toISOTime}, {@link toFormat}, and {@link toDuration}.\n */\nexport default class Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({ invalid });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n\n const validateError = validateStartEnd(builtStart, builtEnd);\n\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `<start>/<end>`, `<start>/<duration>`, and `<duration>/<end>` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime.fromISO} and optionally {@link Duration.fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n let start, startIsValid;\n try {\n start = DateTime.fromISO(s, opts);\n startIsValid = start.isValid;\n } catch (e) {\n startIsValid = false;\n }\n\n let end, endIsValid;\n try {\n end = DateTime.fromISO(e, opts);\n endIsValid = end.isValid;\n } catch (e) {\n endIsValid = false;\n }\n\n if (startIsValid && endIsValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (startIsValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (endIsValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return (o && o.isLuxonInterval) || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @return {number}\n */\n count(unit = \"milliseconds\") {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit),\n end = this.end.startOf(unit);\n return Math.floor(end.diff(start, unit).get(unit)) + 1;\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({ start, end } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...[DateTime]} dateTimes - the unit of time to count.\n * @return {[Interval]}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes\n .map(friendlyDateTime)\n .filter(d => this.contains(d))\n .sort(),\n results = [];\n let { s } = this,\n i = 0;\n\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {[Interval]}\n */\n splitBy(duration) {\n const dur = friendlyDuration(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n let { s } = this,\n added,\n next;\n\n const results = [];\n while (s < this.e) {\n added = s.plus(dur);\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {[Interval]}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Return whether this Interval engulfs the start and end of the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s > e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static merge(intervals) {\n const [found, final] = intervals.sort((a, b) => a.s - b.s).reduce(\n ([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n },\n [[], null]\n );\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map(i => [{ time: i.s, type: \"s\" }, { time: i.e, type: \"e\" }]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {[Interval]}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals))\n .map(i => this.intersection(i))\n .filter(i => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format string.\n * @param {string} dateFormat - the format string. This string formats the start and end time. See {@link DateTime.toFormat} for details.\n * @param {Object} opts - options\n * @param {string} [opts.separator = ' – '] - a separator to place between the start and end representations\n * @return {string}\n */\n toFormat(dateFormat, { separator = \" – \" } = {}) {\n if (!this.isValid) return INVALID;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n","import DateTime from \"./datetime.js\";\nimport Settings from \"./settings.js\";\nimport Locale from \"./impl/locale.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nimport { hasFormatToParts, hasIntl, hasRelative } from \"./impl/util.js\";\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nexport default class Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.local()\n .setZone(zone)\n .set({ month: 12 });\n\n return !zone.universal && proto.offset !== proto.set({ month: 6 }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidSpecifier(zone) && IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone.isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n * @return {[string]}\n */\n static months(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {[string]}\n */\n static monthsFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {[string]}\n */\n static weekdays(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link weekdays}\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @return {[string]}\n */\n static weekdaysFormat(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {[string]}\n */\n static meridiems({ locale = null } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {[string]}\n */\n static eras(length = \"short\", { locale = null } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, timezone support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `zones`: whether this environment supports IANA timezones\n * * `intlTokens`: whether this environment supports internationalized token-based formatting/parsing\n * * `intl`: whether this environment supports general internationalization\n * * `relative`: whether this environment supports relative time formatting\n * @example Info.features() //=> { intl: true, intlTokens: false, zones: true, relative: false }\n * @return {Object}\n */\n static features() {\n let intl = false,\n intlTokens = false,\n zones = false,\n relative = false;\n\n if (hasIntl()) {\n intl = true;\n intlTokens = hasFormatToParts();\n relative = hasRelative();\n\n try {\n zones =\n new Intl.DateTimeFormat(\"en\", { timeZone: \"America/New_York\" }).resolvedOptions()\n .timeZone === \"America/New_York\";\n } catch (e) {\n zones = false;\n }\n }\n\n return { intl, intlTokens, zones, relative };\n }\n}\n","import Duration from \"../duration.js\";\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = dt =>\n dt\n .toUTC(0, { keepLocalTime: true })\n .startOf(\"day\")\n .valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [\n [\"years\", (a, b) => b.year - a.year],\n [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n [\n \"weeks\",\n (a, b) => {\n const days = dayDiff(a, b);\n return (days - (days % 7)) / 7;\n }\n ],\n [\"days\", dayDiff]\n ];\n\n const results = {};\n let lowestOrder, highWater;\n\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n\n let delta = differ(cursor, later);\n highWater = cursor.plus({ [unit]: delta });\n\n if (highWater > later) {\n cursor = cursor.plus({ [unit]: delta - 1 });\n delta -= 1;\n } else {\n cursor = highWater;\n }\n\n results[unit] = delta;\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nexport default function(earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n const remainingMillis = later - cursor;\n\n const lowerOrderUnits = units.filter(\n u => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n );\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({ [lowestOrder]: 1 });\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n const duration = Duration.fromObject(Object.assign(results, opts));\n\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts)\n .shiftTo(...lowerOrderUnits)\n .plus(duration);\n } else {\n return duration;\n }\n}\n","const numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\"\n};\n\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881]\n};\n\n// eslint-disable-next-line\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nexport function parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\nexport function digitRegex({ numberingSystem }, append = \"\") {\n return new RegExp(`${numberingSystems[numberingSystem || \"latn\"]}${append}`);\n}\n","import { parseMillis, isUndefined, untruncateYear, signedOffset, hasOwnProperty } from \"./util.js\";\nimport Formatter from \"./formatter.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport DateTime from \"../datetime.js\";\nimport { digitRegex, parseDigits } from \"./digits.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = i => i) {\n return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nconst NBSP = String.fromCharCode(160);\nconst spaceOrNBSP = `( |${NBSP})`;\nconst spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, \"g\");\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n // make space and non breakable space characters interchangeable\n return s.replace(/\\./g, \"\\\\.?\").replace(spaceOrNBSPRegExp, spaceOrNBSP);\n}\n\nfunction stripInsensitivities(s) {\n return s\n .replace(/\\./g, \"\") // ignore dots that were made optional\n .replace(spaceOrNBSPRegExp, \" \") // interchange space and nbsp\n .toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) =>\n strings.findIndex(i => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex\n };\n }\n}\n\nfunction offset(regex, groups) {\n return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n // eslint-disable-next-line no-useless-escape\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = t => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n unitate = t => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\", false), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\", false), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true, false), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true, false), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false, false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false, false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false, false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false, false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true, false), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true, false), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n default:\n return literal(t);\n }\n };\n\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP\n };\n\n unit.token = token;\n\n return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\"\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\"\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\"\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\"\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour: {\n numeric: \"h\",\n \"2-digit\": \"hh\"\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\"\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\"\n }\n};\n\nfunction tokenForPart(part, locale, formatOpts) {\n const { type, value } = part;\n\n if (type === \"literal\") {\n return {\n literal: true,\n val: value\n };\n }\n\n const style = formatOpts[type];\n\n let val = partTypeStyleToTokenVal[type];\n if (typeof val === \"object\") {\n val = val[style];\n }\n\n if (val) {\n return {\n literal: false,\n val\n };\n }\n\n return undefined;\n}\n\nfunction buildRegex(units) {\n const re = units.map(u => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n const toField = token => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n\n let zone;\n if (!isUndefined(matches.Z)) {\n zone = new FixedOffsetZone(matches.Z);\n } else if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n } else {\n zone = null;\n }\n\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n\n return [vals, zone];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n\n return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n\n if (!formatOpts) {\n return token;\n }\n\n const formatter = Formatter.create(locale, formatOpts);\n const parts = formatter.formatDateTimeParts(getDummyDateTime());\n\n const tokens = parts.map(p => tokenForPart(p, locale, formatOpts));\n\n if (tokens.includes(undefined)) {\n return token;\n }\n\n return tokens;\n}\n\nfunction expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map(t => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nexport function explainFromTokens(locale, input, format) {\n const tokens = expandMacroTokens(Formatter.parseFormat(format), locale),\n units = tokens.map(t => unitForToken(t, locale)),\n disqualifyingUnit = units.find(t => t.invalidReason);\n\n if (disqualifyingUnit) {\n return { input, tokens, invalidReason: disqualifyingUnit.invalidReason };\n } else {\n const [regexString, handlers] = buildRegex(units),\n regex = RegExp(regexString, \"i\"),\n [rawMatches, matches] = match(input, regex, handlers),\n [result, zone] = matches ? dateTimeFromMatches(matches) : [null, null];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\n \"Can't include meridiem when specifying 24-hour format\"\n );\n }\n return { input, tokens, regex, rawMatches, matches, result, zone };\n }\n}\n\nexport function parseFromTokens(locale, input, format) {\n const { result, zone, invalidReason } = explainFromTokens(locale, input, format);\n return [result, zone, invalidReason];\n}\n","import {\n integerBetween,\n isLeapYear,\n timeObject,\n daysInYear,\n daysInMonth,\n weeksInWeekYear,\n isInteger\n} from \"./util.js\";\nimport Invalid from \"./invalid.js\";\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\n \"unit out of range\",\n `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n );\n}\n\nfunction dayOfWeek(year, month, day) {\n const js = new Date(Date.UTC(year, month - 1, day)).getUTCDay();\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex(i => i < ordinal),\n day = ordinal - table[month0];\n return { month: month0 + 1, day };\n}\n\n/**\n * @private\n */\n\nexport function gregorianToWeek(gregObj) {\n const { year, month, day } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = dayOfWeek(year, month, day);\n\n let weekNumber = Math.floor((ordinal - weekday + 10) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear);\n } else if (weekNumber > weeksInWeekYear(year)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return Object.assign({ weekYear, weekNumber, weekday }, timeObject(gregObj));\n}\n\nexport function weekToGregorian(weekData) {\n const { weekYear, weekNumber, weekday } = weekData,\n weekdayOfJan4 = dayOfWeek(weekYear, 1, 4),\n yearInDays = daysInYear(weekYear);\n\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 3,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n const { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(weekData));\n}\n\nexport function gregorianToOrdinal(gregData) {\n const { year, month, day } = gregData,\n ordinal = computeOrdinal(year, month, day);\n\n return Object.assign({ year, ordinal }, timeObject(gregData));\n}\n\nexport function ordinalToGregorian(ordinalData) {\n const { year, ordinal } = ordinalData,\n { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(ordinalData));\n}\n\nexport function hasInvalidWeekData(obj) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(obj.weekNumber, 1, weeksInWeekYear(obj.weekYear)),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.week);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\n\nexport function hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\n\nexport function hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\n\nexport function hasInvalidTimeData(obj) {\n const { hour, minute, second, millisecond } = obj;\n const validHour =\n integerBetween(hour, 0, 23) ||\n (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n","import Duration, { friendlyDuration } from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Settings from \"./settings.js\";\nimport Info from \"./info.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport {\n isUndefined,\n maybeArray,\n isDate,\n isNumber,\n bestBy,\n daysInMonth,\n daysInYear,\n isLeapYear,\n weeksInWeekYear,\n normalizeObject,\n roundTo,\n objToLocalTS\n} from \"./impl/util.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport diff from \"./impl/diff.js\";\nimport { parseRFC2822Date, parseISODate, parseHTTPDate, parseSQL } from \"./impl/regexParser.js\";\nimport { parseFromTokens, explainFromTokens } from \"./impl/tokenParser.js\";\nimport {\n gregorianToWeek,\n weekToGregorian,\n gregorianToOrdinal,\n ordinalToGregorian,\n hasInvalidGregorianData,\n hasInvalidWeekData,\n hasInvalidOrdinalData,\n hasInvalidTimeData\n} from \"./impl/conversions.js\";\nimport * as Formats from \"./impl/formats.js\";\nimport {\n InvalidArgumentError,\n ConflictingSpecificationError,\n InvalidUnitError,\n InvalidDateTimeError\n} from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid\n };\n return new DateTime(Object.assign({}, current, alts, { old: current }));\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n\n const d = new Date(ts);\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds()\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const oPre = inst.o,\n year = inst.c.year + Math.trunc(dur.years),\n month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3,\n c = Object.assign({}, inst.c, {\n year,\n month,\n day:\n Math.min(inst.c.day, daysInMonth(year, month)) +\n Math.trunc(dur.days) +\n Math.trunc(dur.weeks) * 7\n }),\n millisToAdd = Duration.fromObject({\n years: dur.years - Math.trunc(dur.years),\n quarters: dur.quarters - Math.trunc(dur.quarters),\n months: dur.months - Math.trunc(dur.months),\n weeks: dur.weeks - Math.trunc(dur.weeks),\n days: dur.days - Math.trunc(dur.days),\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n\n return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text) {\n const { setZone, zone } = opts;\n if (parsed && Object.keys(parsed).length !== 0) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(\n Object.assign(parsed, opts, {\n zone: interpretationZone,\n // setZone is a valid option in the calling methods, but not in fromObject\n setZone: undefined\n })\n );\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(\n new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n );\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid\n ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true\n }).formatDateTimeFromString(dt, format)\n : null;\n}\n\n// technical time formats (e.g. the time part of ISO 8601), take some options\n// and this commonizes their handling\nfunction toTechTimeFormat(\n dt,\n {\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset,\n includeZone = false,\n spaceZone = false,\n format = \"extended\"\n }\n) {\n let fmt = format === \"basic\" ? \"HHmm\" : \"HH:mm\";\n\n if (!suppressSeconds || dt.second !== 0 || dt.millisecond !== 0) {\n fmt += format === \"basic\" ? \"ss\" : \":ss\";\n if (!suppressMilliseconds || dt.millisecond !== 0) {\n fmt += \".SSS\";\n }\n }\n\n if ((includeZone || includeOffset) && spaceZone) {\n fmt += \" \";\n }\n\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += format === \"basic\" ? \"ZZZ\" : \"ZZ\";\n }\n\n return toTechFormat(dt, fmt);\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\n \"weekYear\",\n \"weekNumber\",\n \"weekday\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\"\n ],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\"\n }[unit.toLowerCase()];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, zone) {\n // assume we have the higher-order units\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zone.offset(tsNow),\n [ts, o] = objToTS(obj, offsetProvis, zone);\n\n return new DateTime({\n ts,\n zone,\n o\n });\n}\n\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = unit => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end\n .startOf(unit)\n .diff(start.startOf(unit), unit)\n .get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(0, opts.units[opts.units.length - 1]);\n}\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link local}, {@link utc}, and (most flexibly) {@link fromObject}. To create one from a standard string format, use {@link fromISO}, {@link fromHTTP}, and {@link fromRFC2822}. To create one from a custom string format, use {@link fromFormat}. To create one from a native JS date, use {@link fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link toObject}), use the {@link year}, {@link month},\n * {@link day}, {@link hour}, {@link minute}, {@link second}, {@link millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link weekYear}, {@link weekNumber}, and {@link weekday} accessors.\n * * **Configuration** See the {@link locale} and {@link numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link set}, {@link reconfigure}, {@link setZone}, {@link setLocale}, {@link plus}, {@link minus}, {@link endOf}, {@link startOf}, {@link toUTC}, and {@link toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link toRelative}, {@link toRelativeCalendar}, {@link toJSON}, {@link toISO}, {@link toHTTP}, {@link toObject}, {@link toRFC2822}, {@link toString}, {@link toLocaleString}, {@link toFormat}, {@link toMillis} and {@link toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nexport default class DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n\n let invalid =\n config.invalid ||\n (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n const ot = zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12) //~> 2017-03-12T00:00:00\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({ ts: Settings.now() });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n Settings.defaultZone\n );\n }\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765Z\n * @return {DateTime}\n */\n static utc(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({\n ts: Settings.now(),\n zone: FixedOffsetZone.utcInstance\n });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n FixedOffsetZone.utcInstance\n );\n }\n }\n\n /**\n * Create a DateTime from a Javascript Date object. Uses the default zone.\n * @param {Date} date - a Javascript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options)\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\n `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n );\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a Javascript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {string|Zone} [obj.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [obj.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} obj.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} obj.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @return {DateTime}\n */\n static fromObject(obj) {\n const zoneToUse = normalizeZone(obj.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zoneToUse.offset(tsNow),\n normalized = normalizeObject(obj, normalizeUnit, [\n \"zone\",\n \"locale\",\n \"outputCalendar\",\n \"numberingSystem\"\n ]),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber,\n loc = Locale.fromObject(obj);\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData\n ? hasInvalidWeekData(normalized)\n : containsOrdinal\n ? hasInvalidOrdinalData(normalized)\n : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData\n ? weekToGregorian(normalized)\n : containsOrdinal\n ? ordinalToGregorian(normalized)\n : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\n \"mismatched weekday\",\n `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n );\n }\n\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/parsing.html#table-of-tokens\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n }),\n [vals, parsedZone, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({ invalid });\n }\n }\n\n /**\n * Check if an object is a DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return (o && o.isLuxonDateTime) || false;\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.local().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.universal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return (\n this.offset > this.set({ month: 1 }).offset || this.offset > this.set({ month: 5 }).offset\n );\n }\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOpts(opts = {}) {\n const { locale, numberingSystem, calendar } = Formatter.create(\n this.loc.clone(opts),\n opts\n ).resolvedOptions(this);\n return { locale, numberingSystem, outputCalendar: calendar };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link plus}. You may wish to use {@link toLocal} and {@link toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, { ts: newTS, zone });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n return clone(this, { loc });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({ locale });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link reconfigure} and {@link setZone}.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const normalized = normalizeObject(values, normalizeUnit, []),\n settingWeekStuff =\n !isUndefined(normalized.weekYear) ||\n !isUndefined(normalized.weekNumber) ||\n !isUndefined(normalized.weekday);\n\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(Object.assign(gregorianToWeek(this.c), normalized));\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian(Object.assign(gregorianToOrdinal(this.c), normalized));\n } else {\n mixed = Object.assign(this.toObject(), normalized);\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, { ts, o });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.local().plus(123) //~> in 123 milliseconds\n * @example DateTime.local().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.local().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.local().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.local().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.local().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit) {\n if (!this.isValid) return this;\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n case \"milliseconds\":\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n o.weekday = 1;\n }\n\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'month', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit) {\n return this.isValid\n ? this.plus({ [unit]: 1 })\n .startOf(unit)\n .minus(1)\n : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options\n * @example DateTime.local().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.local().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.local().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.local().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param opts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @example DateTime.local().toLocaleString(); //=> 4/20/2017\n * @example DateTime.local().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString({ locale: 'en-gb' }); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.local().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.local().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.local().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.local().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.local().toLocaleString({ hour: '2-digit', minute: '2-digit', hour12: false }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(opts = Formats.DATE_SHORT) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTime(this)\n : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.local().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.local().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.local().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.local().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */\n toISO(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toISODate(opts)}T${this.toISOTime(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */\n toISODate({ format = \"extended\" } = {}) {\n let fmt = format === \"basic\" ? \"yyyyMMdd\" : \"yyyy-MM-dd\";\n if (this.year > 9999) {\n fmt = \"+\" + fmt;\n }\n\n return toTechFormat(this, fmt);\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n format = \"extended\"\n } = {}) {\n return toTechTimeFormat(this, {\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n format\n });\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime, always in UTC\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */\n toSQLDate() {\n return toTechFormat(this, \"yyyy-MM-dd\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.local().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.local().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.local().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({ includeOffset = true, includeZone = false } = {}) {\n return toTechTimeFormat(this, {\n includeOffset,\n includeZone,\n spaceZone: true\n });\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a Javascript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.local().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.c);\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a Javascript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\n this.invalid || otherDateTime.invalid,\n \"created by diffing an invalid DateTime\"\n );\n }\n\n const durOpts = Object.assign(\n { locale: this.locale, numberingSystem: this.numberingSystem },\n opts\n );\n\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.local(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @example DateTime.local().hasSame(otherDT, 'day'); //~> true if both the same calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit) {\n if (!this.isValid) return false;\n if (unit === \"millisecond\") {\n return this.valueOf() === otherDateTime.valueOf();\n } else {\n const inputMs = otherDateTime.valueOf();\n return this.startOf(unit) <= inputMs && inputMs <= this.endOf(unit);\n }\n }\n\n /**\n * Equality check\n * Two DateTimes are equal iff they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return (\n this.isValid &&\n other.isValid &&\n this.valueOf() === other.valueOf() &&\n this.zone.equals(other.zone) &&\n this.loc.equals(other.loc)\n );\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {boolean} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.local().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n * @example DateTime.local().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.local().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.local().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.local().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({ zone: this.zone }),\n padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n return diffRelative(\n base,\n this.plus(padding),\n Object.assign(options, {\n numeric: \"always\",\n units: [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"]\n })\n );\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.local().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.local().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n\n return diffRelative(\n options.base || DateTime.fromObject({ zone: this.zone }),\n this,\n Object.assign(options, {\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true\n })\n );\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return Formats.DATE_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return Formats.DATE_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'Fri, Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED_WITH_WEEKDAY() {\n return Formats.DATE_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return Formats.DATE_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return Formats.DATE_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return Formats.TIME_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return Formats.TIME_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return Formats.TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return Formats.TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return Formats.TIME_24_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return Formats.TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return Formats.TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return Formats.TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return Formats.DATETIME_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return Formats.DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return Formats.DATETIME_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return Formats.DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return Formats.DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return Formats.DATETIME_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return Formats.DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return Formats.DATETIME_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return Formats.DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\n `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n );\n }\n}\n"],"names":["LuxonError","Error","InvalidDateTimeError","reason","toMessage","InvalidIntervalError","InvalidDurationError","ConflictingSpecificationError","InvalidUnitError","unit","InvalidArgumentError","ZoneIsAbstractError","n","s","l","DATE_SHORT","year","month","day","DATE_MED","DATE_MED_WITH_WEEKDAY","weekday","DATE_FULL","DATE_HUGE","TIME_SIMPLE","hour","minute","TIME_WITH_SECONDS","second","TIME_WITH_SHORT_OFFSET","timeZoneName","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","hour12","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","isUndefined","o","isNumber","isInteger","isString","isDate","Object","prototype","toString","call","hasIntl","Intl","DateTimeFormat","e","hasFormatToParts","formatToParts","hasRelative","RelativeTimeFormat","maybeArray","thing","Array","isArray","bestBy","arr","by","compare","length","undefined","reduce","best","next","pair","pick","obj","keys","a","k","hasOwnProperty","prop","integerBetween","bottom","top","floorMod","x","Math","floor","padStart","input","repeat","slice","parseInteger","string","parseInt","parseMillis","fraction","f","parseFloat","roundTo","number","digits","towardZero","factor","rounder","trunc","round","isLeapYear","daysInYear","daysInMonth","modMonth","modYear","objToLocalTS","d","Date","UTC","millisecond","setUTCFullYear","getUTCFullYear","weeksInWeekYear","weekYear","p1","last","p2","untruncateYear","parseZoneInfo","ts","offsetFormat","locale","timeZone","date","intlOpts","modified","assign","intl","parsed","find","m","type","toLowerCase","value","without","format","included","diffed","substring","trimmed","replace","signedOffset","offHourStr","offMinuteStr","offHour","Number","isNaN","offMin","offMinSigned","is","asNumber","numericValue","normalizeObject","normalizer","nonUnitKeys","normalized","u","indexOf","v","formatOffset","offset","hours","abs","minutes","sign","RangeError","timeObject","ianaRegex","stringify","JSON","sort","monthsLong","monthsShort","monthsNarrow","months","weekdaysLong","weekdaysShort","weekdaysNarrow","weekdays","meridiems","erasLong","erasShort","erasNarrow","eras","meridiemForDateTime","dt","weekdayForDateTime","monthForDateTime","eraForDateTime","formatRelativeTime","count","numeric","narrow","units","years","quarters","weeks","days","seconds","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","formatString","knownFormat","filtered","key","dateTimeHuge","Formats","stringifyTokens","splits","tokenToString","token","literal","val","macroTokenToFormatOpts","D","DD","DDD","DDDD","t","tt","ttt","tttt","T","TT","TTT","TTTT","ff","fff","ffff","F","FF","FFF","FFFF","Formatter","create","opts","parseFormat","fmt","current","currentFull","bracketed","i","c","charAt","push","formatOpts","loc","systemLoc","formatWithSystemDefault","redefaultToSystem","df","dtFormatter","formatDateTime","formatDateTimeParts","resolvedOptions","num","p","forceSimple","padTo","numberFormatter","formatDateTimeFromString","knownEnglish","listingMode","useDateTimeFormatter","outputCalendar","extract","isOffsetFixed","allowZ","isValid","zone","meridiem","English","standalone","maybeMacro","era","offsetName","zoneName","weekNumber","ordinal","quarter","formatDurationFromString","dur","tokenToField","lildur","mapped","get","tokens","realTokens","found","concat","collapsed","shiftTo","map","filter","Invalid","explanation","Zone","equals","otherZone","singleton","LocalZone","getTimezoneOffset","matchingRegex","RegExp","source","dtfCache","makeDTF","typeToPos","hackyOffset","dtf","formatted","exec","fMonth","fDay","fYear","fHour","fMinute","fSecond","partsOffset","filled","pos","ianaZoneCache","IANAZone","name","resetCache","isValidSpecifier","match","isValidZone","parseGMTOffset","specifier","valid","adjustedHour","asUTC","asTS","over","FixedOffsetZone","instance","utcInstance","parseSpecifier","r","fixed","InvalidZone","NaN","normalizeZone","defaultZone","lowered","now","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","throwOnInvalid","Settings","resetCaches","Locale","z","numberingSystem","intlDTCache","getCachedDTF","locString","intlNumCache","getCachedINF","inf","NumberFormat","intlRelCache","getCachedRTF","base","cacheKeyOpts","sysLocaleCache","systemLocale","computedSys","parseLocaleString","localeStr","uIndex","options","smaller","calendar","intlConfigString","mapMonths","ms","DateTime","utc","mapWeekdays","listStuff","defaultOK","englishFn","intlFn","mode","supportsFastNumbers","startsWith","PolyNumberFormatter","useGrouping","minimumIntegerDigits","PolyDateFormatter","universal","fromMillis","toJSDate","tokenFormat","PolyRelFormatter","isEnglish","style","rtf","fromOpts","defaultToEN","specifiedLocale","localeR","numberingSystemR","outputCalendarR","fromObject","numbering","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","weekdaysCache","monthsCache","meridiemCache","eraCache","fastNumbersCached","hasFTP","isActuallyEn","hasNoWeirdness","clone","alts","getOwnPropertyNames","redefaultToEN","formatStr","field","results","matching","fastNumbers","relFormatter","other","combineRegexes","regexes","full","combineExtractors","extractors","ex","mergedVals","mergedZone","cursor","parse","patterns","regex","extractor","simpleParse","ret","offsetRegex","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","isoYmdRegex","isoWeekRegex","isoOrdinalRegex","extractISOWeekData","extractISOOrdinalData","sqlYmdRegex","sqlTimeRegex","sqlTimeExtensionRegex","int","fallback","extractISOYmd","item","extractISOTime","extractISOOffset","local","fullOffset","extractIANAZone","isoDuration","extractISODuration","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","hasNegativePrefix","maybeNegate","milliseconds","obsOffsets","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","fromStrings","weekdayStr","result","rfc2822","extractRFC2822","obsOffset","milOffset","preprocessRFC2822","trim","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDataAndTime","extractISOTimeAndOffset","parseISODate","parseRFC2822Date","parseHTTPDate","parseISODuration","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOYmdTimeOffsetAndIANAZone","extractISOTimeOffsetAndIANAZone","parseSQL","INVALID","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits","reverseUnits","reverse","clear","conf","values","conversionAccuracy","Duration","antiTrunc","ceil","convert","matrix","fromMap","fromUnit","toMap","toUnit","conv","raw","sameSign","added","normalizeValues","vals","previous","config","accurate","invalid","isLuxonDuration","normalizeUnit","fromISO","text","week","isDuration","toFormat","fmtOpts","toObject","includeConfig","toISO","toJSON","valueOf","as","plus","duration","friendlyDuration","minus","negate","mapUnits","fn","set","mixed","reconfigure","normalize","built","accumulated","lastUnit","own","ak","down","negated","durationish","validateStartEnd","start","end","Interval","isLuxonInterval","fromDateTimes","builtStart","friendlyDateTime","builtEnd","validateError","after","before","split","startIsValid","endIsValid","isInterval","toDuration","startOf","diff","hasSame","isEmpty","isAfter","dateTime","isBefore","contains","splitAt","dateTimes","sorted","splitBy","divideEqually","numberOfParts","overlaps","abutsStart","abutsEnd","engulfs","intersection","union","merge","intervals","b","sofar","final","xor","currentCount","ends","time","flattened","difference","toISODate","toISOTime","dateFormat","separator","invalidReason","mapEndpoints","mapFn","Info","hasDST","proto","setZone","isValidIANAZone","monthsFormat","weekdaysFormat","features","intlTokens","zones","relative","dayDiff","earlier","later","utcDayStart","toUTC","keepLocalTime","highOrderDiffs","differs","lowestOrder","highWater","differ","delta","remainingMillis","lowerOrderUnits","numberingSystems","arab","arabext","bali","beng","deva","fullwide","gujr","hanidec","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","latn","numberingSystemsUTF16","hanidecChars","parseDigits","str","code","charCodeAt","search","min","max","digitRegex","append","MISSING_FTP","intUnit","post","deser","NBSP","String","fromCharCode","spaceOrNBSP","spaceOrNBSPRegExp","fixListRegex","stripInsensitivities","oneOf","strings","startIndex","join","findIndex","groups","h","simple","escapeToken","unitForToken","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","unitate","partTypeStyleToTokenVal","short","long","dayperiod","dayPeriod","tokenForPart","part","buildRegex","re","handlers","matches","all","matchIndex","dateTimeFromMatches","toField","Z","q","M","G","y","S","dummyDateTimeCache","getDummyDateTime","maybeExpandMacroToken","formatter","parts","includes","expandMacroTokens","explainFromTokens","disqualifyingUnit","regexString","rawMatches","parseFromTokens","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","getUTCDay","computeOrdinal","uncomputeOrdinal","table","month0","gregorianToWeek","gregObj","weekToGregorian","weekData","weekdayOfJan4","yearInDays","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","hasInvalidWeekData","validYear","validWeek","validWeekday","hasInvalidOrdinalData","validOrdinal","hasInvalidGregorianData","validMonth","validDay","hasInvalidTimeData","validHour","validMinute","validSecond","validMillisecond","MAX_DATE","unsupportedZone","possiblyCachedWeekData","inst","old","fixOffset","localTS","tz","utcGuess","o2","o3","tsToObj","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","objToTS","adjustTime","oPre","millisToAdd","parseDataToDateTime","parsedZone","interpretationZone","toTechFormat","toTechTimeFormat","suppressSeconds","suppressMilliseconds","includeOffset","includeZone","spaceZone","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedWeekUnits","orderedOrdinalUnits","weeknumber","weeksnumber","weeknumbers","weekyear","weekyears","quickDT","tsNow","offsetProvis","diffRelative","calendary","unchanged","ot","_zone","isLuxonDateTime","fromJSDate","zoneToUse","fromSeconds","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","useWeekData","defaultValues","objNow","foundFirst","higherOrderInvalid","gregorian","tsFinal","offsetFinal","fromRFC2822","fromHTTP","fromFormat","localeToUse","fromString","fromSQL","isDateTime","resolvedLocaleOpts","toLocal","keepCalendarTime","newTS","offsetGuess","asObj","setLocale","settingWeekStuff","normalizedUnit","endOf","toLocaleString","toLocaleParts","toISOWeekDate","toRFC2822","toHTTP","toSQLDate","toSQLTime","toSQL","toMillis","toSeconds","toBSON","otherDateTime","durOpts","otherIsLater","diffNow","until","inputMs","toRelative","padding","toRelativeCalendar","every","fromFormatExplain","fromStringExplain","dateTimeish"],"mappings":"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"} \ No newline at end of file diff --git a/npm_assets/node_modules/luxon/build/global/luxon.min.js b/npm_assets/node_modules/luxon/build/global/luxon.min.js index 03f3699b4c..59df19e5ab 100644 --- a/npm_assets/node_modules/luxon/build/global/luxon.min.js +++ b/npm_assets/node_modules/luxon/build/global/luxon.min.js @@ -1 +1 @@ -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 o(e,t){e.prototype=Object.create(t.prototype),(e.prototype.constructor=e).__proto__=t}function a(e){return(a=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,a(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(e):"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 o(t,e),t}(t(Error)),l=function(t){function e(e){return t.call(this,"Invalid DateTime: "+e.toMessage())||this}return o(e,t),e}(n),f=function(t){function e(e){return t.call(this,"Invalid Interval: "+e.toMessage())||this}return o(e,t),e}(n),d=function(t){function e(e){return t.call(this,"Invalid Duration: "+e.toMessage())||this}return o(e,t),e}(n),L=function(e){function t(){return e.apply(this,arguments)||this}return o(t,e),t}(n),h=function(t){function e(e){return t.call(this,"Invalid unit "+e)||this}return o(e,t),e}(n),m=function(e){function t(){return e.apply(this,arguments)||this}return o(t,e),t}(n),y=function(e){function t(){return e.call(this,"Zone is an abstract class")||this}return o(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:p,day:v},O={year:v,month:p,day:v,weekday:p},S={hour:v,minute:v},T={hour:v,minute:v,second:v},M={hour:v,minute:v,second:v,timeZoneName:g},N={hour:v,minute:v,second:v,timeZoneName:p},D={hour:v,minute:v,hour12:!1},E={hour:v,minute:v,second:v,hour12:!1},x={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},C={year:v,month:v,day:v,hour:v,minute:v,second:v},j={year:v,month:g,day:v,hour:v,minute:v},A={year:v,month:g,day:v,hour:v,minute:v,second:v},z={year:v,month:g,day:v,weekday:g,hour:v,minute:v},_={year:v,month:p,day:v,hour:v,minute:v,timeZoneName:g},q={year:v,month:p,day:v,hour:v,minute:v,second:v,timeZoneName:g},H={year:v,month:p,day:v,weekday:p,hour:v,minute:v,timeZoneName:p},U={year:v,month:p,day:v,weekday:p,hour:v,minute:v,second:v,timeZoneName:p};function R(e){return void 0===e}function W(e){return"number"==typeof e}function P(e){return"number"==typeof e&&e%1==0}function I(){try{return"undefined"!=typeof Intl&&Intl.DateTimeFormat}catch(e){return!1}}function J(){return!R(Intl.DateTimeFormat.prototype.formatToParts)}function Y(){try{return"undefined"!=typeof Intl&&!!Intl.RelativeTimeFormat}catch(e){return!1}}function G(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 $(n,e){return e.reduce(function(e,t){return e[t]=n[t],e},{})}function B(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Q(e,t,n){return P(e)&&t<=e&&e<=n}function K(e,t){return void 0===t&&(t=2),e.toString().length<t?("0".repeat(t)+e).slice(-t):e.toString()}function X(e){return R(e)||null===e||""===e?void 0:parseInt(e,10)}function ee(e){if(!R(e)&&null!==e&&""!==e){var t=1e3*parseFloat("0."+e);return Math.floor(t)}}function te(e,t,n){void 0===n&&(n=!1);var r=Math.pow(10,t);return(n?Math.trunc:Math.round)(e*r)/r}function ne(e){return e%4==0&&(e%100!=0||e%400==0)}function re(e){return ne(e)?366:365}function ie(e,t){var n,r,i=(n=t-1)-(r=12)*Math.floor(n/r)+1;return 2==i?ne(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 ae(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 ue(e){return 99<e?e:60<e?1900+e:2e3+e}function se(e,t,n,r){void 0===r&&(r=null);var i=new Date(e),o={hour12:!1,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};r&&(o.timeZone=r);var a=Object.assign({timeZoneName:t},o),u=I();if(u&&J()){var s=new Intl.DateTimeFormat(n,a).formatToParts(i).find(function(e){return"timezonename"===e.type.toLowerCase()});return s?s.value:null}if(u){var c=new Intl.DateTimeFormat(n,o).format(i);return new Intl.DateTimeFormat(n,a).format(i).substring(c.length).replace(/^[, \u200e]+/,"")}return null}function ce(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 le(e){var t=Number(e);if("boolean"==typeof e||""===e||Number.isNaN(t))throw new m("Invalid unit value "+e);return t}function fe(e,t,n){var r={};for(var i in e)if(B(e,i)){if(0<=n.indexOf(i))continue;var o=e[i];if(null==o)continue;r[t(i)]=le(o)}return r}function de(e,t){var n=Math.trunc(e/60),r=Math.abs(e%60),i=0<=n&&!Object.is(n,-0)?"+":"-",o=i+Math.abs(n);switch(t){case"short":return i+K(Math.abs(n),2)+":"+K(r,2);case"narrow":return 0<r?o+":"+r:o;case"techie":return i+K(Math.abs(n),2)+K(r,2);default:throw new RangeError("Value format "+t+" is out of range for property format")}}function he(e){return $(e,["hour","minute","second","millisecond"])}var me=/[A-Za-z_+-]{1,256}(:?\/[A-Za-z_+-]{1,256}(\/[A-Za-z_+-]{1,256})?)?/;function ye(e){return JSON.stringify(e,Object.keys(e).sort())}var ve=["January","February","March","April","May","June","July","August","September","October","November","December"],ge=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],pe=["J","F","M","A","M","J","J","A","S","O","N","D"];function we(e){switch(e){case"narrow":return pe;case"short":return ge;case"long":return ve;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 ke=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],be=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Oe=["M","T","W","T","F","S","S"];function Se(e){switch(e){case"narrow":return Oe;case"short":return be;case"long":return ke;case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var Te=["AM","PM"],Me=["Before Christ","Anno Domini"],Ne=["BC","AD"],De=["B","A"];function Ee(e){switch(e){case"narrow":return De;case"short":return Ne;case"long":return Me;default:return null}}function Ie(e,t){for(var n,r="",i=V(e);!(n=i()).done;){var o=n.value;o.literal?r+=o.val:r+=t(o.val)}return r}var Ve={D:w,DD:k,DDD:b,DDDD:O,t:S,tt:T,ttt:M,tttt:N,T:D,TT:E,TTT:x,TTTT:F,f:Z,ff:j,fff:_,ffff:H,F:C,FF:A,FFF:q,FFFF:U},Le=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=[],o=0;o<e.length;o++){var a=e.charAt(o);"'"===a?(0<n.length&&i.push({literal:r,val:n}),t=null,n="",r=!r):r||a===t?n+=a:(0<n.length&&i.push({literal:!1,val:n}),t=n=a)}return 0<n.length&&i.push({literal:r,val:n}),i},h.macroTokenToFormatOpts=function(e){return Ve[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 K(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 o(e){return r.isOffsetFixed&&0===r.offset&&e.allowZ?"Z":r.isValid?r.zone.formatOffset(r.ts,e.format):""}function a(){return f?Te[r.hour<12?0:1]:i({hour:"numeric",hour12:!0},"dayperiod")}function u(e,t){return f?(n=r,we(e)[n.month-1]):i(t?{month:e}:{month:e,day:"numeric"},"month");var n}function s(e,t){return f?(n=r,Se(e)[n.weekday-1]):i(t?{weekday:e}:{weekday:e,month:"long",day:"numeric"},"weekday");var n}function c(e){return f?(t=r,Ee(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&&J();return Ie(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 o({format:"narrow",allowZ:l.opts.allowZ});case"ZZ":return o({format:"short",allowZ:l.opts.allowZ});case"ZZZ":return o({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 a();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,o=h.parseFormat(t),a=o.reduce(function(e,t){var n=t.literal,r=t.val;return n?e:e.concat(r)},[]),u=e.shiftTo.apply(e,a.map(n).filter(function(e){return e}));return Ie(o,(r=u,function(e){var t=n(e);return t?i.num(r.get(t),e.length):e}))},h}(),xe=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,Ce=function(e){function t(){return e.apply(this,arguments)||this}o(t,e);var n=t.prototype;return n.offsetName=function(e,t){return se(e,t.format,t.locale)},n.formatOffset=function(e,t){return de(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),je=RegExp("^"+me.source+"$"),Ae={};var ze={year:0,month:1,day:2,hour:3,minute:4,second:5};var _e={},qe=function(n){function r(e){var t=n.call(this)||this;return t.zoneName=e,t.valid=r.isValidZone(e),t}o(r,n),r.create=function(e){return _e[e]||(_e[e]=new r(e)),_e[e]},r.resetCache=function(){_e={},Ae={}},r.isValidSpecifier=function(e){return!(!e||!e.match(je))},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 se(e,t.format,t.locale,this.name)},e.formatOffset=function(e,t){return de(this.offset(e),t)},e.offset=function(e){var t,n,r,i,o,a,u=new Date(e),s=(a=this.name,Ae[a]||(Ae[a]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:a,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})),Ae[a]),c=s.formatToParts?function(e,t){for(var n=e.formatToParts(t),r=[],i=0;i<n.length;i++){var o=n[i],a=o.type,u=o.value,s=ze[a];R(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],o=r[2],[r[3],i,o,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),He=null,Ue=function(n){function r(e){var t=n.call(this)||this;return t.fixed=e,t}o(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(ce(t[1],t[2]))}return null},i(r,null,[{key:"utcInstance",get:function(){return null===He&&(He=new r(0)),He}}]);var e=r.prototype;return e.offsetName=function(){return this.name},e.formatOffset=function(e,t){return de(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"+de(this.fixed,"narrow")}},{key:"universal",get:function(){return!0}},{key:"isValid",get:function(){return!0}}]),r}(Fe),Re=function(n){function e(e){var t=n.call(this)||this;return t.zoneName=e,t}o(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 We(e,t){var n;if(R(e)||null===e)return t;if(e instanceof Fe)return e;if("string"!=typeof e)return W(e)?Ue.instance(e):"object"==typeof e&&e.offset&&"number"==typeof e.offset?e:new Re(e);var r=e.toLowerCase();return"local"===r?t:"utc"===r||"gmt"===r?Ue.utcInstance:null!=(n=qe.parseGMTOffset(e))?Ue.instance(n):qe.isValidSpecifier(r)?qe.create(e):Ue.parseSpecifier(r)||new Re(e)}var Pe=function(){return Date.now()},Je=null,Ye=null,Ge=null,$e=null,Be=!1,Qe=function(){function e(){}return e.resetCaches=function(){st.resetCache(),qe.resetCache()},i(e,null,[{key:"now",get:function(){return Pe},set:function(e){Pe=e}},{key:"defaultZoneName",get:function(){return e.defaultZone.name},set:function(e){Je=e?We(e):null}},{key:"defaultZone",get:function(){return Je||Ce.instance}},{key:"defaultLocale",get:function(){return Ye},set:function(e){Ye=e}},{key:"defaultNumberingSystem",get:function(){return Ge},set:function(e){Ge=e}},{key:"defaultOutputCalendar",get:function(){return $e},set:function(e){$e=e}},{key:"throwOnInvalid",get:function(){return Be},set:function(e){Be=e}}]),e}(),Ke={};function Xe(e,t){void 0===t&&(t={});var n=JSON.stringify([e,t]),r=Ke[n];return r||(r=new Intl.DateTimeFormat(e,t),Ke[n]=r),r}var et={};var tt={};function nt(e,t){void 0===t&&(t={});t.base;var n=function(e,t){if(null==e)return{};for(var n,r={},i=Object.keys(e),o=0;o<i.length;o++)n=i[o],0<=t.indexOf(n)||(r[n]=e[n]);return r}(t,["base"]),r=JSON.stringify([e,n]),i=tt[r];return i||(i=new Intl.RelativeTimeFormat(e,t),tt[r]=i),i}var rt=null;function it(e,t,n,r,i){var o=e.listingMode(n);return"error"===o?null:("en"===o?r:i)(t)}var ot=function(){function e(e,t,n){var r;this.padTo=n.padTo||0,this.floor=n.floor||!1,!t&&I()&&(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=et[n];return r||(r=new Intl.NumberFormat(e,t),et[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 K(this.floor?Math.floor(e):te(e,3),this.padTo)},e}(),at=function(){function e(e,t,n){var r,i;this.opts=n,this.hasIntl=I(),e.zone.universal&&this.hasIntl?(r="UTC",n.timeZoneName?this.dt=e:this.dt=0===e.offset?e:ur.fromMillis(e.ts+60*e.offset*1e3)):"local"===e.zone.type?this.dt=e:r=(this.dt=e).zone.name,this.hasIntl&&(i=Object.assign({},this.opts),r&&(i.timeZone=r),this.dtf=Xe(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(ye($(e,["weekday","era","year","month","day","hour","minute","second","timeZoneName","hour12"]))){case ye(w):return"M/d/yyyy";case ye(k):return"LLL d, yyyy";case ye(b):return"LLLL d, yyyy";case ye(O):return"EEEE, LLLL d, yyyy";case ye(S):return"h:mm a";case ye(T):return"h:mm:ss a";case ye(M):case ye(N):return"h:mm a";case ye(D):return"HH:mm";case ye(E):return"HH:mm:ss";case ye(x):case ye(F):return"HH:mm";case ye(Z):return"M/d/yyyy, h:mm a";case ye(j):return"LLL d, yyyy, h:mm a";case ye(_):return"LLLL d, yyyy, h:mm a";case ye(H):return t;case ye(C):return"M/d/yyyy, h:mm:ss a";case ye(A):return"LLL d, yyyy, h:mm:ss a";case ye(z):return"EEE, d LLL yyyy, h:mm a";case ye(q):return"LLLL d, yyyy, h:mm:ss a";case ye(U):return"EEEE, LLLL d, yyyy, h:mm:ss a";default:return t}}(this.opts),t=st.create("en-US");return Le.create(t).formatDateTimeFromString(this.dt,e)},t.formatToParts=function(){return this.hasIntl&&J()?this.dtf.formatToParts(this.dt.toJSDate()):[]},t.resolvedOptions=function(){return this.hasIntl?this.dtf.resolvedOptions():{locale:"en-US",numberingSystem:"latn",outputCalendar:"gregory"}},e}(),ut=function(){function e(e,t,n){this.opts=Object.assign({style:"long"},n),!t&&Y()&&(this.rtf=nt(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."]},o=-1===["hours","minutes","seconds"].indexOf(e);if("auto"===n&&o){var a="days"===e;switch(t){case 1:return a?"tomorrow":"next "+i[e][0];case-1:return a?"yesterday":"last "+i[e][0];case 0:return a?"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}(),st=function(){function o(e,t,n,r){var i,o,a,u=function(e){var t=e.indexOf("-u-");if(-1===t)return[e];var n,r=e.substring(0,t);try{n=Xe(e).resolvedOptions()}catch(e){n=Xe(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,o=this.numberingSystem,a=this.outputCalendar,I()?((a||o)&&(i+="-u",a&&(i+="-ca-"+a),o&&(i+="-nu-"+o)),i):[]),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=r,this.fastNumbersCached=null}o.fromOpts=function(e){return o.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)},o.create=function(e,t,n,r){void 0===r&&(r=!1);var i=e||Qe.defaultLocale;return new o(i||(r?"en-US":function(){if(rt)return rt;if(I()){var e=(new Intl.DateTimeFormat).resolvedOptions().locale;return rt=e&&"und"!==e?e:"en-US"}return rt="en-US"}()),t||Qe.defaultNumberingSystem,n||Qe.defaultOutputCalendar,i)},o.resetCache=function(){rt=null,Ke={},et={},tt={}},o.fromObject=function(e){var t=void 0===e?{}:e,n=t.locale,r=t.numberingSystem,i=t.outputCalendar;return o.create(n,r,i)};var e=o.prototype;return e.listingMode=function(e){void 0===e&&(e=!0);var t=I()&&J(),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?o.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),it(this,n,e,we,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=ur.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),it(this,n,e,Se,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=ur.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),it(this,void 0,e,function(){return Te},function(){var t;return n.meridiemCache||(t={hour:"numeric",hour12:!0},n.meridiemCache=[ur.utc(2016,11,13,9),ur.utc(2016,11,13,19)].map(function(e){return n.extract(e,t,"dayperiod")})),n.meridiemCache})},e.eras=function(e,t){var n=this;return void 0===t&&(t=!0),it(this,e,t,Ee,function(){var t={era:e};return n.eraCache[e]||(n.eraCache[e]=[ur.utc(-40,1,1),ur.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 at(e,this.intl,t)},e.relFormatter=function(e){return void 0===e&&(e={}),new ut(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(o,[{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}}]),o}();function ct(){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 lt(){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],o=t(c,i),a=o[0],u=o[1],s=o[2];return[Object.assign(n,a),r||u,s]},[{},null,1]).slice(0,2)}}function ft(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,o=n;i<o.length;i++){var a=o[i],u=a[0],s=a[1],c=u.exec(e);if(c)return s(c)}return[null,null]}function dt(){for(var e=arguments.length,i=new Array(e),t=0;t<e;t++)i[t]=arguments[t];return function(e,t){for(var n={},r=0;r<i.length;r++)n[i[r]]=X(e[t+r]);return[n,null,t+r]}}var ht=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,mt=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,9}))?)?)?/,yt=RegExp(""+mt.source+ht.source+"?"),vt=RegExp("(?:T"+yt.source+")?"),gt=dt("weekYear","weekNumber","weekDay"),pt=dt("year","ordinal"),wt=RegExp(mt.source+" ?(?:"+ht.source+"|("+me.source+"))?"),kt=RegExp("(?: "+wt.source+")?");function bt(e,t,n){var r=e[t];return R(r)?n:X(r)}function Ot(e,t){return[{year:bt(e,t),month:bt(e,t+1,1),day:bt(e,t+2,1)},null,t+3]}function St(e,t){return[{hour:bt(e,t,0),minute:bt(e,t+1,0),second:bt(e,t+2,0),millisecond:ee(e[t+3])},null,t+4]}function Tt(e,t){var n=!e[t]&&!e[t+1],r=ce(e[t+1],e[t+2]);return[{},n?null:Ue.instance(r),t+3]}function Mt(e,t){return[{},e[t]?qe.create(e[t]):null,t+1]}var Nt=/^-?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,9})(?:[.,](-?\d{1,9}))?S)?)?)$/;function Dt(e){function t(e){return e&&f?-e:e}var n=e[0],r=e[1],i=e[2],o=e[3],a=e[4],u=e[5],s=e[6],c=e[7],l=e[8],f="-"===n[0];return[{years:t(X(r)),months:t(X(i)),weeks:t(X(o)),days:t(X(a)),hours:t(X(u)),minutes:t(X(s)),seconds:t(X(c)),milliseconds:t(ee(l))}]}var Et={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function It(e,t,n,r,i,o,a){var u={year:2===t.length?ue(X(t)):X(t),month:ge.indexOf(n)+1,day:X(r),hour:X(i),minute:X(o)};return a&&(u.second=X(a)),e&&(u.weekday=3<e.length?ke.indexOf(e)+1:be.indexOf(e)+1),u}var Vt=/^(?:(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 Lt(e){var t=e[1],n=e[2],r=e[3],i=e[4],o=e[5],a=e[6],u=e[7],s=e[8],c=e[9],l=e[10],f=e[11],d=It(t,i,r,n,o,a,u),h=s?Et[s]:c?0:ce(l,f);return[d,new Ue(h)]}var xt=/^(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 Ct(e){var t=e[1],n=e[2],r=e[3];return[It(t,e[4],r,n,e[5],e[6],e[7]),Ue.utcInstance]}function jt(e){var t=e[1],n=e[2],r=e[3],i=e[4],o=e[5],a=e[6];return[It(t,e[7],n,r,i,o,a),Ue.utcInstance]}var At=ct(/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,vt),zt=ct(/(\d{4})-?W(\d\d)(?:-?(\d))?/,vt),_t=ct(/(\d{4})-?(\d{3})/,vt),qt=ct(yt),Ht=lt(Ot,St,Tt),Ut=lt(gt,St,Tt),Rt=lt(pt,St),Wt=lt(St,Tt);var Pt=ct(/(\d{4})-(\d\d)-(\d\d)/,kt),Jt=ct(wt),Yt=lt(Ot,St,Tt,Mt),Gt=lt(St,Tt,Mt);var $t={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}},Bt=Object.assign({years:{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,milliseconds:78624e5},months:{weeks:4,days:30,hours:720,minutes:43200,seconds:2592e3,milliseconds:2592e6}},$t),Qt=365.2425,Kt=30.436875,Xt=Object.assign({years:{months:12,weeks:Qt/7,days:Qt,hours:24*Qt,minutes:525949.2,seconds:525949.2*60,milliseconds:525949.2*60*1e3},quarters:{months:3,weeks:Qt/28,days:Qt/4,hours:24*Qt/4,minutes:131487.3,seconds:525949.2*60/4,milliseconds:7889237999.999999},months:{weeks:Kt/7,days:Kt,hours:24*Kt,minutes:43829.1,seconds:2629746,milliseconds:2629746e3}},$t),en=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],tn=en.slice(0).reverse();function nn(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 an(r)}function rn(e,t,n,r,i){var o,a=e[i][n],u=t[n]/a,s=!(Math.sign(u)===Math.sign(r[i]))&&0!==r[i]&&Math.abs(u)<=1?(o=u)<0?Math.floor(o):Math.ceil(o):Math.trunc(u);r[i]+=s,t[n]-=s*a}function on(n,r){tn.reduce(function(e,t){return R(r[t])?e:(e&&rn(n,r,e,r,t),t)},null)}var an=function(){function y(e){var t="longterm"===e.conversionAccuracy||!1;this.values=e.values,this.loc=e.loc||st.create(),this.conversionAccuracy=t?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=t?Xt:Bt,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:fe(e,y.normalizeUnit,["locale","numberingSystem","conversionAccuracy","zone"]),loc:st.fromObject(e),conversionAccuracy:e.conversionAccuracy})},y.fromISO=function(e,t){var n=ft(e,[Nt,Dt])[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 xe?e:new xe(e,t);if(Qe.throwOnInvalid)throw new d(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?Le.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+=te(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(en);!(t=i()).done;){var o=t.value;(B(n.values,o)||B(this.values,o))&&(r[o]=n.get(o)+this.get(o))}return nn(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]=le(e(this.values[i],i))}return nn(this,{values:t},!0)},e.get=function(e){return this[y.normalizeUnit(e)]},e.set=function(e){return this.isValid?nn(this,{values:Object.assign(this.values,fe(e,y.normalizeUnit,[]))}):this},e.reconfigure=function(e){var t=void 0===e?{}:e,n=t.locale,r=t.numberingSystem,i=t.conversionAccuracy,o={loc:this.loc.clone({locale:n,numberingSystem:r})};return i&&(o.conversionAccuracy=i),nn(this,o)},e.as=function(e){return this.isValid?this.shiftTo(e).get(e):NaN},e.normalize=function(){if(!this.isValid)return this;var e=this.toObject();return on(this.matrix,e),nn(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)});var r,i={},o={},a=this.toObject();on(this.matrix,a);for(var u,s=V(en);!(u=s()).done;){var c=u.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;W(a[c])&&(l+=a[c]);var d=Math.trunc(l);for(var h in i[c]=d,o[c]=l-d,a)en.indexOf(h)>en.indexOf(c)&&rn(this.matrix,a,h,i,c)}else W(a[c])&&(o[c]=a[c])}for(var m in o)0!==o[m]&&(i[r]+=m===r?o[m]:o[m]/this.matrix[r][m]);return nn(this,{values:i},!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 nn(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(en);!(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(W(e))return an.fromMillis(e);if(an.isDuration(e))return e;if("object"==typeof e)return an.fromObject(e);throw new m("Unknown duration argument "+e+" of type "+typeof e)}var sn="Invalid Interval";var cn=function(){function l(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}l.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 xe?e:new xe(e,t);if(Qe.throwOnInvalid)throw new f(n);return new l({invalid:n})},l.fromDateTimes=function(e,t){var n,r,i=sr(e),o=sr(t),a=(r=o,(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==a?new l({start:i,end:o}):a},l.after=function(e,t){var n=un(t),r=sr(e);return l.fromDateTimes(r,r.plus(n))},l.before=function(e,t){var n=un(t),r=sr(e);return l.fromDateTimes(r.minus(n),r)},l.fromISO=function(e,t){var n=(e||"").split("/",2),r=n[0],i=n[1];if(r&&i){var o=ur.fromISO(r,t),a=ur.fromISO(i,t);if(o.isValid&&a.isValid)return l.fromDateTimes(o,a);if(o.isValid){var u=an.fromISO(i,t);if(u.isValid)return l.after(o,u)}else if(a.isValid){var s=an.fromISO(r,t);if(s.isValid)return l.before(a,s)}}return l.invalid("unparsable",'the input "'+e+"\" can't be parsed as ISO 8601")},l.isInterval=function(e){return e&&e.isLuxonInterval||!1};var e=l.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.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?l.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(sr).filter(function(e){return t.contains(e)}).sort(),o=[],a=this.s,u=0;a<this.e;){var s=i[u]||this.e,c=+s>+this.e?this.e:s;o.push(l.fromDateTimes(a,c)),a=c,u+=1}return o},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,o=[];i<this.e;)r=+(n=i.plus(t))>+this.e?this.e:n,o.push(l.fromDateTimes(i,r)),i=r;return o},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:l.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 l.fromDateTimes(t,n)},l.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},l.xor=function(e){for(var t,n,r=null,i=0,o=[],a=e.map(function(e){return[{time:e.s,type:"s"},{time:e.e,type:"e"}]}),u=V((t=Array.prototype).concat.apply(t,a).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&&o.push(l.fromDateTimes(r,s.time)),null);return l.merge(o)},e.difference=function(){for(var t=this,e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return l.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):an.invalid(this.invalidReason)},e.mapEndpoints=function(e){return l.fromDateTimes(e(this.s),e(this.e))},i(l,[{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}}]),l}(),ln=function(){function e(){}return e.hasDST=function(e){void 0===e&&(e=Qe.defaultZone);var t=ur.local().setZone(e).set({month:12});return!e.universal&&t.offset!==t.set({month:6}).offset},e.isValidIANAZone=function(e){return qe.isValidSpecifier(e)&&qe.isValidZone(e)},e.normalizeZone=function(e){return We(e,Qe.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,o=n.numberingSystem,a=void 0===o?null:o,u=n.outputCalendar,s=void 0===u?"gregory":u;return st.create(i,a,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,o=n.numberingSystem,a=void 0===o?null:o,u=n.outputCalendar,s=void 0===u?"gregory":u;return st.create(i,a,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,o=n.numberingSystem,a=void 0===o?null:o;return st.create(i,a,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,o=n.numberingSystem,a=void 0===o?null:o;return st.create(i,a,null).weekdays(e,!0)},e.meridiems=function(e){var t=(void 0===e?{}:e).locale,n=void 0===t?null:t;return st.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 st.create(r,null,"gregory").eras(e)},e.features=function(){var e=!1,t=!1,n=!1,r=!1;if(I()){e=!0,t=J(),r=Y();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(an.fromMillis(r).as("days"))}function dn(e,t,n,r){var i,o=function(e,t,n){for(var r={},i=0,o=[["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]];i<o.length;i++){var a,u,s,c,l,f=o[i],d=f[0],h=f[1];0<=n.indexOf(d)&&(u=d,s=h(e,t),t<(l=e.plus(((a={})[d]=s,a)))?(e=e.plus(((c={})[d]=s-1,c)),--s):e=l,r[d]=s)}return[e,r,l,u]}(e,t,n),a=o[0],u=o[1],s=o[2],c=o[3],l=t-a,f=n.filter(function(e){return 0<=["hours","minutes","seconds","milliseconds"].indexOf(e)});0===f.length&&(s<t&&(s=a.plus(((i={})[c]=1,i))),s!==a&&(u[c]=(u[c]||0)+l/(s-a)));var d,h=an.fromObject(Object.assign(u,r));return 0<f.length?(d=an.fromMillis(l,r)).shiftTo.apply(d,f).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 o=mn[i],a=o[0],u=o[1];a<=r&&r<=u&&(t+=r-a)}}return parseInt(t,10)}return t}(t))}}}function wn(e){return e.replace(/\./,"\\.?")}function kn(e){return e.replace(/\./,"").toLowerCase()}function bn(n,r){return null===n?null:{regex:RegExp(n.map(wn).join("|")),deser:function(e){var t=e[0];return n.findIndex(function(e){return kn(t)===kn(e)})+r}}}function On(e,t){return{regex:e,deser:function(e){return ce(e[1],e[2])},groups:t}}function Sn(e){return{regex:e,deser:function(e){return e[0]}}}function Tn(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),o=vn(n,"{2}"),a=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 bn(n.eras("short",!1),0);case"GG":return bn(n.eras("long",!1),0);case"y":return pn(f);case"yy":return pn(h,ue);case"yyyy":return pn(u);case"yyyyy":return pn(m);case"yyyyyy":return pn(s);case"M":return pn(c);case"MM":return pn(o);case"MMM":return bn(n.months("short",!0,!1),1);case"MMMM":return bn(n.months("long",!0,!1),1);case"L":return pn(c);case"LL":return pn(o);case"LLL":return bn(n.months("short",!1,!1),1);case"LLLL":return bn(n.months("long",!1,!1),1);case"d":return pn(c);case"dd":return pn(o);case"o":return pn(l);case"ooo":return pn(a);case"HH":return pn(o);case"H":return pn(c);case"hh":return pn(o);case"h":return pn(c);case"mm":return pn(o);case"m":case"q":return pn(c);case"qq":return pn(o);case"s":return pn(c);case"ss":return pn(o);case"S":return pn(l);case"SSS":return pn(a);case"u":return Sn(d);case"a":return bn(n.meridiems(),0);case"kkkk":return pn(u);case"kk":return pn(h,ue);case"W":return pn(c);case"WW":return pn(o);case"E":case"c":return pn(i);case"EEE":return bn(n.weekdays("short",!1,!1),1);case"EEEE":return bn(n.weekdays("long",!1,!1),1);case"ccc":return bn(n.weekdays("short",!0,!1),1);case"cccc":return bn(n.weekdays("long",!0,!1),1);case"Z":case"ZZ":return On(new RegExp("([+-]"+c.source+")(?::("+o.source+"))?"),2);case"ZZZ":return On(new RegExp("([+-]"+c.source+")("+o.source+")?"),2);case"z":return Sn(/[a-z_+-/]{1,256}?/i);default:return r(e)}}(t)||{invalidReason:gn};return e.token=t,e}var Mn={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 Nn=null;function Dn(e,t){if(e.literal)return e;var n=Le.macroTokenToFormatOpts(e.val);if(!n)return e;var r=Le.create(t,n).formatDateTimeParts(Nn=Nn||ur.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],o=Mn[n];return"object"==typeof o&&(o=o[i]),o?{literal:!1,val:o}:void 0}(e,n)});return r.includes(void 0)?e:r}function En(t,e,n){var r,i,o,a=(r=Le.parseFormat(n),i=t,(o=Array.prototype).concat.apply(o,r.map(function(e){return Dn(e,i)}))),u=a.map(function(e){return Tn(e,t)}),s=u.find(function(e){return e.invalidReason});if(s)return{input:e,tokens:a,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,o,a={},u=1;for(var s in n){B(n,s)&&(o=(i=n[s]).groups?i.groups+1:1,!i.literal&&i.token&&(a[i.token.val[0]]=i.deser(r.slice(u,u+o))),u+=o)}return[r,a]}return[r,{}]}(e,m,h),v=y[0],g=y[1],p=g?(l=R((c=g).Z)?R(c.z)?null:qe.create(c.z):new Ue(c.Z),R(c.q)||(c.M=3*(c.q-1)+1),R(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),R(c.u)||(c.S=ee(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(B(g,"a")&&B(g,"H"))throw new L("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:a,regex:m,rawMatches:v,matches:g,result:w,zone:k}}var In=[0,31,59,90,120,151,181,212,243,273,304,334],Vn=[0,31,60,91,121,152,182,213,244,274,305,335];function Ln(e,t){return new xe("unit out of range","you specified "+t+" (of type "+typeof t+") as a "+e+", which is invalid")}function xn(e,t,n){var r=new Date(Date.UTC(e,t-1,n)).getUTCDay();return 0===r?7:r}function Fn(e,t,n){return n+(ne(e)?Vn:In)[t-1]}function Zn(e,t){var n=ne(e)?Vn:In,r=n.findIndex(function(e){return e<t});return{month:r+1,day:t-n[r]}}function Cn(e){var t,n=e.year,r=e.month,i=e.day,o=Fn(n,r,i),a=xn(n,r,i),u=Math.floor((o-a+10)/7);return u<1?u=ae(t=n-1):u>ae(n)?(t=n+1,u=1):t=n,Object.assign({weekYear:t,weekNumber:u,weekday:a},he(e))}function jn(e){var t,n=e.weekYear,r=e.weekNumber,i=e.weekday,o=xn(n,1,4),a=re(n),u=7*r+i-o-3;u<1?u+=re(t=n-1):a<u?(t=n+1,u-=re(n)):t=n;var s=Zn(t,u),c=s.month,l=s.day;return Object.assign({year:t,month:c,day:l},he(e))}function An(e){var t=e.year,n=Fn(t,e.month,e.day);return Object.assign({year:t,ordinal:n},he(e))}function zn(e){var t=e.year,n=Zn(t,e.ordinal),r=n.month,i=n.day;return Object.assign({year:t,month:r,day:i},he(e))}function _n(e){var t=P(e.year),n=Q(e.month,1,12),r=Q(e.day,1,ie(e.year,e.month));return t?n?!r&&Ln("day",e.day):Ln("month",e.month):Ln("year",e.year)}function qn(e){var t=e.hour,n=e.minute,r=e.second,i=e.millisecond,o=Q(t,0,23)||24===t&&0===n&&0===r&&0===i,a=Q(n,0,59),u=Q(r,0,59),s=Q(i,0,999);return o?a?u?!s&&Ln("millisecond",i):Ln("second",r):Ln("minute",n):Ln("hour",t)}var Hn="Invalid DateTime";function Un(e){return new xe("unsupported zone",'the zone "'+e.name+'" is not supported')}function Rn(e){return null===e.weekData&&(e.weekData=Cn(e.c)),e.weekData}function Wn(e,t){var n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new ur(Object.assign({},n,t,{old:n}))}function Pn(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 o=n.offset(r);return i===o?[r,i]:[e-60*Math.min(i,o)*1e3,Math.max(i,o)]}function Jn(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 Yn(e,t,n){return Pn(oe(e),t,n)}function Gn(e,t){var n=Object.keys(t.values);-1===n.indexOf("milliseconds")&&n.push("milliseconds"),t=t.shiftTo.apply(t,n);var r=e.o,i=e.c.year+t.years,o=e.c.month+t.months+3*t.quarters,a=Object.assign({},e.c,{year:i,month:o,day:Math.min(e.c.day,ie(i,o))+t.days+7*t.weeks}),u=an.fromObject({hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),s=Pn(oe(a),r,e.zone),c=s[0],l=s[1];return 0!==u&&(c+=u,l=e.zone.offset(c)),{ts:c,o:l}}function $n(e,t,n,r,i){var o=n.setZone,a=n.zone;if(e&&0!==Object.keys(e).length){var u=t||a,s=ur.fromObject(Object.assign(e,n,{zone:u,setZone:void 0}));return o?s:s.setZone(a)}return ur.invalid(new xe("unparsable",'the input "'+i+"\" can't be parsed as "+r))}function Bn(e,t,n){return void 0===n&&(n=!0),e.isValid?Le.create(st.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function Qn(e,t){var n=t.suppressSeconds,r=void 0!==n&&n,i=t.suppressMilliseconds,o=void 0!==i&&i,a=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",o&&0===e.millisecond||(h+=".SSS")),(s||a)&&l&&(h+=" "),s?h+="z":a&&(h+="basic"===d?"ZZZ":"ZZ"),Bn(e,h)}var Kn={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},Xn={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},er={ordinal:1,hour:0,minute:0,second:0,millisecond:0},tr=["year","month","day","hour","minute","second","millisecond"],nr=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],rr=["year","ordinal","hour","minute","second","millisecond"];function ir(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 or(e,t){for(var n,r=V(tr);!(n=r()).done;){var i=n.value;R(e[i])&&(e[i]=Kn[i])}var o=_n(e)||qn(e);if(o)return ur.invalid(o);var a=Qe.now(),u=Yn(e,t.offset(a),t),s=u[0],c=u[1];return new ur({ts:s,zone:t,o:c})}function ar(t,n,r){function e(e,t){return e=te(e,o||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 o=!!R(r.round)||r.round;if(r.unit)return e(i(r.unit),r.unit);for(var a,u=V(r.units);!(a=u()).done;){var s=a.value,c=i(s);if(1<=Math.abs(c))return e(c,s)}return e(0,r.units[r.units.length-1])}var ur=function(){function I(e){var t=e.zone||Qe.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new xe("invalid input"):null)||(t.isValid?null:Un(t));this.ts=R(e.ts)?Qe.now():e.ts;var r,i,o=null,a=null;n||(a=e.old&&e.old.ts===this.ts&&e.old.zone.equals(t)?(o=(r=[e.old.c,e.old.o])[0],r[1]):(i=t.offset(this.ts),o=Jn(this.ts,i),o=(n=Number.isNaN(o.year)?new xe("invalid input"):null)?null:o,n?null:i)),this._zone=t,this.loc=e.loc||st.create(),this.invalid=n,this.weekData=null,this.c=o,this.o=a,this.isLuxonDateTime=!0}I.local=function(e,t,n,r,i,o,a){return R(e)?new I({ts:Qe.now()}):or({year:e,month:t,day:n,hour:r,minute:i,second:o,millisecond:a},Qe.defaultZone)},I.utc=function(e,t,n,r,i,o,a){return R(e)?new I({ts:Qe.now(),zone:Ue.utcInstance}):or({year:e,month:t,day:n,hour:r,minute:i,second:o,millisecond:a},Ue.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=We(t.zone,Qe.defaultZone);return i.isValid?new I({ts:r,zone:i,loc:st.fromObject(t)}):I.invalid(Un(i))},I.fromMillis=function(e,t){if(void 0===t&&(t={}),W(e))return e<-864e13||864e13<e?I.invalid("Timestamp out of range"):new I({ts:e,zone:We(t.zone,Qe.defaultZone),loc:st.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={}),W(e))return new I({ts:1e3*e,zone:We(t.zone,Qe.defaultZone),loc:st.fromObject(t)});throw new m("fromSeconds requires a numerical input")},I.fromObject=function(e){var t=We(e.zone,Qe.defaultZone);if(!t.isValid)return I.invalid(Un(t));var n=Qe.now(),r=t.offset(n),i=fe(e,ir,["zone","locale","outputCalendar","numberingSystem"]),o=!R(i.ordinal),a=!R(i.year),u=!R(i.month)||!R(i.day),s=a||u,c=i.weekYear||i.weekNumber,l=st.fromObject(e);if((s||o)&&c)throw new L("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(u&&o)throw new L("Can't mix ordinal dates with month/day");var f,d,h=c||i.weekday&&!s,m=Jn(n,r);h?(f=nr,d=Xn,m=Cn(m)):o?(f=rr,d=er,m=An(m)):(f=tr,d=Kn);for(var y,v=!1,g=V(f);!(y=g()).done;){var p=y.value;R(i[p])?i[p]=v?d[p]:m[p]:v=!0}var w,k,b,O,S,T,M,N=(h?(S=P((O=i).weekYear),T=Q(O.weekNumber,1,ae(O.weekYear)),M=Q(O.weekday,1,7),S?T?!M&&Ln("weekday",O.weekday):Ln("week",O.week):Ln("weekYear",O.weekYear)):o?(k=P((w=i).year),b=Q(w.ordinal,1,re(w.year)),k?!b&&Ln("ordinal",w.ordinal):Ln("year",w.year)):_n(i))||qn(i);if(N)return I.invalid(N);var D=Yn(h?jn(i):o?zn(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=ft(e,[At,Ht],[zt,Ut],[_t,Rt],[qt,Wt]);return $n(n[0],n[1],t,"ISO 8601",e)},I.fromRFC2822=function(e,t){void 0===t&&(t={});var n=ft(e.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim(),[Vt,Lt]);return $n(n[0],n[1],t,"RFC 2822",e)},I.fromHTTP=function(e,t){void 0===t&&(t={});var n=ft(e,[xt,Ct],[Ft,Ct],[Zt,jt]);return $n(n[0],n[1],t,"HTTP",t)},I.fromFormat=function(e,t,n){if(void 0===n&&(n={}),R(e)||R(t))throw new m("fromFormat requires an input string and a format");var r,i=n.locale,o=void 0===i?null:i,a=n.numberingSystem,u=void 0===a?null:a,s=st.fromOpts({locale:o,numberingSystem:u,defaultToEN:!0}),c=[(r=En(s,e,t)).result,r.zone,r.invalidReason],l=c[0],f=c[1],d=c[2];return d?I.invalid(d):$n(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=ft(e,[Pt,Yt],[Jt,Gt]);return $n(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 xe?e:new xe(e,t);if(Qe.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=Le.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(Ue.instance(e),t)},e.toLocal=function(){return this.setZone(Qe.defaultZone)},e.setZone=function(e,t){var n=void 0===t?{}:t,r=n.keepLocalTime,i=void 0!==r&&r,o=n.keepCalendarTime,a=void 0!==o&&o;if((e=We(e,Qe.defaultZone)).equals(this.zone))return this;if(e.isValid){var u,s=this.ts;return(i||a)&&(u=e.offset(this.ts),s=Yn(this.toObject(),u,e)[0]),Wn(this,{ts:s,zone:e})}return I.invalid(Un(e))},e.reconfigure=function(e){var t=void 0===e?{}:e,n=t.locale,r=t.numberingSystem,i=t.outputCalendar,o=this.loc.clone({locale:n,numberingSystem:r,outputCalendar:i});return Wn(this,{loc:o})},e.setLocale=function(e){return this.reconfigure({locale:e})},e.set=function(e){if(!this.isValid)return this;var t,n=fe(e,ir,[]);!R(n.weekYear)||!R(n.weekNumber)||!R(n.weekday)?t=jn(Object.assign(Cn(this.c),n)):R(n.ordinal)?(t=Object.assign(this.toObject(),n),R(n.day)&&(t.day=Math.min(ie(t.year,t.month),t.day))):t=zn(Object.assign(An(this.c),n));var r=Yn(t,this.o,this.zone);return Wn(this,{ts:r[0],o:r[1]})},e.plus=function(e){return this.isValid?Wn(this,Gn(this,un(e))):this},e.minus=function(e){return this.isValid?Wn(this,Gn(this,un(e).negate())):this},e.startOf=function(e){if(!this.isValid)return this;var t,n={},r=an.normalizeUnit(e);switch(r){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0}return"weeks"===r&&(n.weekday=1),"quarters"===r&&(t=Math.ceil(this.month/3),n.month=3*(t-1)+1),this.set(n)},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?Le.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):Hn},e.toLocaleString=function(e){return void 0===e&&(e=w),this.isValid?Le.create(this.loc.clone(e),e).formatDateTime(this):Hn},e.toLocaleParts=function(e){return void 0===e&&(e={}),this.isValid?Le.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),Bn(this,n)},e.toISOWeekDate=function(){return Bn(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,o=void 0!==i&&i,a=t.includeOffset,u=void 0===a||a,s=t.format;return Qn(this,{suppressSeconds:o,suppressMilliseconds:r,includeOffset:u,format:void 0===s?"extended":s})},e.toRFC2822=function(){return Bn(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)},e.toHTTP=function(){return Bn(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")},e.toSQLDate=function(){return Bn(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 Qn(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():Hn},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 an.invalid(this.invalid||e.invalid,"created by diffing an invalid DateTime");var r,i=Object.assign({locale:this.locale,numberingSystem:this.numberingSystem},n),o=(r=t,(Array.isArray(r)?r:[r]).map(an.normalizeUnit)),a=e.valueOf()>this.valueOf(),u=dn(a?this:e,a?e:this,o,i);return a?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 ar(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?ar(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 G(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 G(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,o=n.numberingSystem,a=void 0===o?null:o;return En(st.fromOpts({locale:i,numberingSystem:a,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?Rn(this).weekYear:NaN}},{key:"weekNumber",get:function(){return this.isValid?Rn(this).weekNumber:NaN}},{key:"weekday",get:function(){return this.isValid?Rn(this).weekday:NaN}},{key:"ordinal",get:function(){return this.isValid?An(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 ne(this.year)}},{key:"daysInMonth",get:function(){return ie(this.year,this.month)}},{key:"daysInYear",get:function(){return this.isValid?re(this.year):NaN}},{key:"weeksInWeekYear",get:function(){return this.isValid?ae(this.weekYear):NaN}}],[{key:"DATE_SHORT",get:function(){return w}},{key:"DATE_MED",get:function(){return k}},{key:"DATE_FULL",get:function(){return b}},{key:"DATE_HUGE",get:function(){return O}},{key:"TIME_SIMPLE",get:function(){return S}},{key:"TIME_WITH_SECONDS",get:function(){return T}},{key:"TIME_WITH_SHORT_OFFSET",get:function(){return M}},{key:"TIME_WITH_LONG_OFFSET",get:function(){return N}},{key:"TIME_24_SIMPLE",get:function(){return D}},{key:"TIME_24_WITH_SECONDS",get:function(){return E}},{key:"TIME_24_WITH_SHORT_OFFSET",get:function(){return x}},{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 C}},{key:"DATETIME_MED",get:function(){return j}},{key:"DATETIME_MED_WITH_SECONDS",get:function(){return A}},{key:"DATETIME_MED_WITH_WEEKDAY",get:function(){return z}},{key:"DATETIME_FULL",get:function(){return _}},{key:"DATETIME_FULL_WITH_SECONDS",get:function(){return q}},{key:"DATETIME_HUGE",get:function(){return H}},{key:"DATETIME_HUGE_WITH_SECONDS",get:function(){return U}}]),I}();function sr(e){if(ur.isDateTime(e))return e;if(e&&e.valueOf&&W(e.valueOf()))return ur.fromJSDate(e);if(e&&"object"==typeof e)return ur.fromObject(e);throw new m("Unknown datetime argument: "+e+", of type "+typeof e)}return e.DateTime=ur,e.Duration=an,e.FixedOffsetZone=Ue,e.IANAZone=qe,e.Info=ln,e.Interval=cn,e.InvalidZone=Re,e.LocalZone=Ce,e.Settings=Qe,e.Zone=Fe,e}({}); \ No newline at end of file +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 diff --git a/npm_assets/node_modules/luxon/build/global/luxon.min.js.map b/npm_assets/node_modules/luxon/build/global/luxon.min.js.map index 09ddafd1b2..44d5719f1d 100644 --- a/npm_assets/node_modules/luxon/build/global/luxon.min.js.map +++ b/npm_assets/node_modules/luxon/build/global/luxon.min.js.map @@ -1 +1 @@ -{"version":3,"file":"build/global/luxon.js","sources":["0"],"names":["luxon","exports","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","_inheritsLoose","subClass","superClass","create","constructor","__proto__","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","_setPrototypeOf","p","_construct","Parent","args","Class","Reflect","construct","sham","Proxy","Date","toString","call","e","_isNativeReflectConstruct","a","push","apply","instance","Function","bind","arguments","_wrapNativeSuper","_cache","Map","undefined","fn","indexOf","TypeError","has","get","set","Wrapper","this","value","_arrayLikeToArray","arr","len","arr2","Array","_createForOfIteratorHelperLoose","Symbol","iterator","next","isArray","minLen","n","slice","name","from","test","_unsupportedIterableToArray","done","LuxonError","_Error","Error","InvalidDateTimeError","_LuxonError","reason","toMessage","InvalidIntervalError","_LuxonError2","InvalidDurationError","_LuxonError3","ConflictingSpecificationError","_LuxonError4","InvalidUnitError","_LuxonError5","unit","InvalidArgumentError","_LuxonError6","ZoneIsAbstractError","_LuxonError7","s","l","DATE_SHORT","year","month","day","DATE_MED","DATE_FULL","DATE_HUGE","weekday","TIME_SIMPLE","hour","minute","TIME_WITH_SECONDS","second","TIME_WITH_SHORT_OFFSET","timeZoneName","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","hour12","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","isUndefined","isNumber","isInteger","hasIntl","Intl","DateTimeFormat","hasFormatToParts","formatToParts","hasRelative","RelativeTimeFormat","bestBy","by","compare","reduce","best","pair","pick","obj","keys","k","hasOwnProperty","prop","integerBetween","thing","bottom","top","padStart","input","repeat","parseInteger","string","parseInt","parseMillis","fraction","f","parseFloat","Math","floor","roundTo","number","digits","towardZero","factor","pow","trunc","round","isLeapYear","daysInYear","daysInMonth","x","modMonth","objToLocalTS","d","UTC","millisecond","setUTCFullYear","getUTCFullYear","weeksInWeekYear","weekYear","p1","last","p2","untruncateYear","parseZoneInfo","ts","offsetFormat","locale","timeZone","date","intlOpts","modified","assign","intl","parsed","find","m","type","toLowerCase","without","format","substring","replace","signedOffset","offHourStr","offMinuteStr","offHour","Number","isNaN","offMin","is","asNumber","numericValue","normalizeObject","normalizer","nonUnitKeys","normalized","u","v","formatOffset","offset","hours","minutes","abs","sign","base","RangeError","timeObject","ianaRegex","stringify","JSON","sort","monthsLong","monthsShort","monthsNarrow","months","weekdaysLong","weekdaysShort","weekdaysNarrow","weekdays","meridiems","erasLong","erasShort","erasNarrow","eras","stringifyTokens","splits","tokenToString","_step","_iterator","token","literal","val","_macroTokenToFormatOpts","D","DD","DDD","DDDD","t","tt","ttt","tttt","T","TT","TTT","TTTT","ff","fff","ffff","F","FF","FFF","FFFF","Formatter","formatOpts","opts","loc","systemLoc","parseFormat","fmt","current","currentFull","bracketed","c","charAt","macroTokenToFormatOpts","_proto","formatWithSystemDefault","dt","redefaultToSystem","dtFormatter","formatDateTime","formatDateTimeParts","resolvedOptions","num","forceSimple","padTo","numberFormatter","formatDateTimeFromString","extract","_this","isOffsetFixed","allowZ","isValid","zone","meridiem","knownEnglish","standalone","era","listingMode","useDateTimeFormatter","outputCalendar","offsetName","zoneName","weekNumber","ordinal","quarter","formatDurationFromString","dur","tokenToField","lildur","_this2","tokens","realTokens","found","_ref","concat","collapsed","shiftTo","map","filter","mapped","Invalid","explanation","Zone","equals","singleton","LocalZone","_Zone","getTimezoneOffset","otherZone","matchingRegex","RegExp","source","dtfCache","typeToPos","ianaZoneCache","IANAZone","valid","isValidZone","resetCache","isValidSpecifier","match","parseGMTOffset","specifier","formatted","fMonth","fDay","dtf","_ref2","filled","_formatted$i","pos","partsOffset","exec","asTS","over","singleton$1","FixedOffsetZone","fixed","utcInstance","parseSpecifier","r","InvalidZone","NaN","normalizeZone","defaultZone","lowered","now","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","throwOnInvalid","Settings","resetCaches","Locale","z","numberingSystem","intlDTCache","getCachedDTF","locString","intlNumCache","intlRelCache","getCachedRTF","cacheKeyOpts","excluded","sourceKeys","_objectWithoutPropertiesLoose","inf","sysLocaleCache","listStuff","defaultOK","englishFn","intlFn","mode","PolyNumberFormatter","useGrouping","minimumIntegerDigits","NumberFormat","getCachedINF","PolyDateFormatter","universal","DateTime","fromMillis","_proto2","toJSDate","tokenFormat","knownFormat","dateTimeHuge","formatString","PolyRelFormatter","isEnglish","style","rtf","_proto3","count","numeric","narrow","units","years","quarters","weeks","days","seconds","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","formatRelativeTime","numbering","specifiedLocale","localeStr","_parseLocaleString","uIndex","options","smaller","calendar","parseLocaleString","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","weekdaysCache","monthsCache","meridiemCache","eraCache","fastNumbersCached","fromOpts","defaultToEN","computedSys","systemLocale","fromObject","_temp","_proto4","hasFTP","isActuallyEn","hasNoWeirdness","clone","alts","getOwnPropertyNames","redefaultToEN","formatStr","ms","utc","mapMonths","mapWeekdays","_this3","_this4","field","matching","fastNumbers","relFormatter","startsWith","other","combineRegexes","_len","regexes","_key","full","combineExtractors","_len2","extractors","_key2","ex","mergedVals","mergedZone","cursor","_ex","parse","_len3","patterns","_key3","_i","_patterns","_patterns$_i","regex","extractor","simpleParse","_len4","_key4","ret","offsetRegex","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","extractISOWeekData","extractISOOrdinalData","sqlTimeRegex","sqlTimeExtensionRegex","int","fallback","extractISOYmd","extractISOTime","extractISOOffset","local","fullOffset","extractIANAZone","isoDuration","extractISODuration","maybeNegate","hasNegativePrefix","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","milliseconds","obsOffsets","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","fromStrings","weekdayStr","result","rfc2822","extractRFC2822","obsOffset","milOffset","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDataAndTime","extractISOTimeAndOffset","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOYmdTimeOffsetAndIANAZone","extractISOTimeOffsetAndIANAZone","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits","reverseUnits","reverse","clear","conf","values","conversionAccuracy","Duration","convert","matrix","fromMap","fromUnit","toMap","toUnit","conv","raw","added","ceil","normalizeValues","vals","previous","config","accurate","invalid","isLuxonDuration","normalizeUnit","fromISO","text","week","isDuration","toFormat","fmtOpts","toObject","includeConfig","toISO","toJSON","valueOf","as","plus","duration","friendlyDuration","minus","negate","mapUnits","_Object$keys","reconfigure","normalize","lastUnit","built","accumulated","_step2","_iterator2","own","ak","down","negated","_i2","_Object$keys2","_step3","_iterator3","durationish","INVALID$1","Interval","start","end","isLuxonInterval","fromDateTimes","builtStart","friendlyDateTime","builtEnd","validateError","after","before","_split","split","_dur","isInterval","toDuration","startOf","diff","hasSame","isEmpty","isAfter","dateTime","isBefore","contains","splitAt","dateTimes","sorted","results","splitBy","divideEqually","numberOfParts","overlaps","abutsStart","abutsEnd","engulfs","intersection","union","merge","intervals","_intervals$sort$reduc","b","item","sofar","final","xor","_Array$prototype","currentCount","ends","time","difference","toISODate","toISOTime","dateFormat","_temp2","_ref3$separator","separator","invalidReason","mapEndpoints","mapFn","Info","hasDST","proto","setZone","isValidIANAZone","_ref$locale","_ref$numberingSystem","_ref$outputCalendar","monthsFormat","_ref2$locale","_ref2$numberingSystem","_ref2$outputCalendar","_temp3","_ref3","_ref3$locale","_ref3$numberingSystem","weekdaysFormat","_temp4","_ref4","_ref4$locale","_ref4$numberingSystem","_temp5","_ref5$locale","_temp6","_ref6$locale","features","intlTokens","zones","relative","dayDiff","earlier","later","utcDayStart","toUTC","keepLocalTime","_diff","_cursor$plus3","_highOrderDiffs","_differs","_cursor$plus","lowestOrder","delta","_cursor$plus2","highWater","_differs$_i","differ","highOrderDiffs","remainingMillis","lowerOrderUnits","_Duration$fromMillis","numberingSystems","arab","arabext","bali","beng","deva","fullwide","gujr","hanidec","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","latn","numberingSystemsUTF16","hanidecChars","digitRegex","append","MISSING_FTP","intUnit","post","deser","str","code","charCodeAt","search","_numberingSystemsUTF","min","max","parseDigits","fixListRegex","stripInsensitivities","oneOf","strings","startIndex","join","findIndex","groups","simple","unitForToken","_ref5","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","unitate","partTypeStyleToTokenVal","2-digit","short","long","dayperiod","dayPeriod","dummyDateTimeCache","maybeExpandMacroToken","part","tokenForPart","includes","explainFromTokens","disqualifyingUnit","matches","_buildRegex","handlers","_match","h","all","matchIndex","rawMatches","_ref6","Z","q","M","G","y","S","toField","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","getUTCDay","computeOrdinal","uncomputeOrdinal","table","month0","gregorianToWeek","gregObj","weekToGregorian","weekData","weekdayOfJan4","yearInDays","_uncomputeOrdinal","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","_uncomputeOrdinal2","hasInvalidGregorianData","validYear","validMonth","validDay","hasInvalidTimeData","validHour","validMinute","validSecond","validMillisecond","INVALID$2","unsupportedZone","possiblyCachedWeekData","clone$1","inst","old","fixOffset","localTS","tz","utcGuess","o2","o3","tsToObj","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","objToTS","adjustTime","oPre","millisToAdd","_fixOffset","parseDataToDateTime","parsedZone","interpretationZone","toTechFormat","toTechTimeFormat","_ref$suppressSeconds","suppressSeconds","_ref$suppressMillisec","suppressMilliseconds","includeOffset","_ref$includeZone","includeZone","_ref$spaceZone","spaceZone","_ref$format","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedUnits$1","orderedWeekUnits","orderedOrdinalUnits","weeknumber","weeksnumber","weeknumbers","weekyear","weekyears","quickDT","tsNow","_objToTS","diffRelative","calendary","ot","_zone","isLuxonDateTime","fromJSDate","zoneToUse","fromSeconds","offsetProvis","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","defaultValues","useWeekData","objNow","foundFirst","validOrdinal","validWeek","validWeekday","_objToTS2","_parseISODate","fromRFC2822","_parseRFC2822Date","trim","fromHTTP","_parseHTTPDate","fromFormat","_explainFromTokens","_opts$locale","_opts$numberingSystem","localeToUse","_parseFromTokens","fromString","fromSQL","_parseSQL","isDateTime","resolvedLocaleOpts","_Formatter$create$res","toLocal","_ref3$keepLocalTime","_ref3$keepCalendarTim","keepCalendarTime","offsetGuess","newTS","setLocale","mixed","_objToTS4","normalizedUnit","endOf","_this$plus","toLocaleString","toLocaleParts","_ref5$format","toISOWeekDate","_ref6$suppressMillise","_ref6$suppressSeconds","_ref6$includeOffset","_ref6$format","toRFC2822","toHTTP","toSQLDate","toSQLTime","_ref7","_ref7$includeOffset","_ref7$includeZone","toSQL","toMillis","toSeconds","toBSON","otherDateTime","durOpts","otherIsLater","diffed","diffNow","until","inputMs","toRelative","padding","toRelativeCalendar","every","fromFormatExplain","_options$locale","_options$numberingSys","fromStringExplain","dateTimeish"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"build/global/luxon.js","sources":["0"],"names":["luxon","exports","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","_inheritsLoose","subClass","superClass","create","constructor","__proto__","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","_setPrototypeOf","p","_construct","Parent","args","Class","Reflect","construct","sham","Proxy","Date","toString","call","e","_isNativeReflectConstruct","a","push","apply","instance","Function","bind","arguments","_wrapNativeSuper","_cache","Map","undefined","fn","indexOf","TypeError","has","get","set","Wrapper","this","value","_arrayLikeToArray","arr","len","arr2","Array","_createForOfIteratorHelperLoose","Symbol","iterator","next","isArray","minLen","n","slice","name","from","test","_unsupportedIterableToArray","done","LuxonError","_Error","Error","InvalidDateTimeError","_LuxonError","reason","toMessage","InvalidIntervalError","_LuxonError2","InvalidDurationError","_LuxonError3","ConflictingSpecificationError","_LuxonError4","InvalidUnitError","_LuxonError5","unit","InvalidArgumentError","_LuxonError6","ZoneIsAbstractError","_LuxonError7","s","l","DATE_SHORT","year","month","day","DATE_MED","DATE_MED_WITH_WEEKDAY","weekday","DATE_FULL","DATE_HUGE","TIME_SIMPLE","hour","minute","TIME_WITH_SECONDS","second","TIME_WITH_SHORT_OFFSET","timeZoneName","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","hour12","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","isUndefined","isNumber","isInteger","hasIntl","Intl","DateTimeFormat","hasFormatToParts","formatToParts","hasRelative","RelativeTimeFormat","bestBy","by","compare","reduce","best","pair","pick","obj","keys","k","hasOwnProperty","prop","integerBetween","thing","bottom","top","padStart","input","repeat","parseInteger","string","parseInt","parseMillis","fraction","f","parseFloat","Math","floor","roundTo","number","digits","towardZero","factor","pow","trunc","round","isLeapYear","daysInYear","daysInMonth","x","modMonth","objToLocalTS","d","UTC","millisecond","setUTCFullYear","getUTCFullYear","weeksInWeekYear","weekYear","p1","last","p2","untruncateYear","parseZoneInfo","ts","offsetFormat","locale","timeZone","date","intlOpts","modified","assign","intl","parsed","find","m","type","toLowerCase","without","format","substring","replace","signedOffset","offHourStr","offMinuteStr","offHour","Number","isNaN","offMin","is","asNumber","numericValue","normalizeObject","normalizer","nonUnitKeys","normalized","u","v","formatOffset","offset","hours","abs","minutes","sign","RangeError","timeObject","ianaRegex","stringify","JSON","sort","monthsLong","monthsShort","monthsNarrow","months","weekdaysLong","weekdaysShort","weekdaysNarrow","weekdays","meridiems","erasLong","erasShort","erasNarrow","eras","stringifyTokens","splits","tokenToString","_step","_iterator","token","literal","val","_macroTokenToFormatOpts","D","DD","DDD","DDDD","t","tt","ttt","tttt","T","TT","TTT","TTTT","ff","fff","ffff","F","FF","FFF","FFFF","Formatter","formatOpts","opts","loc","systemLoc","parseFormat","fmt","current","currentFull","bracketed","c","charAt","macroTokenToFormatOpts","_proto","formatWithSystemDefault","dt","redefaultToSystem","dtFormatter","formatDateTime","formatDateTimeParts","resolvedOptions","num","forceSimple","padTo","numberFormatter","formatDateTimeFromString","extract","_this","isOffsetFixed","allowZ","isValid","zone","meridiem","knownEnglish","standalone","era","listingMode","useDateTimeFormatter","outputCalendar","offsetName","zoneName","weekNumber","ordinal","quarter","formatDurationFromString","dur","tokenToField","lildur","_this2","tokens","realTokens","found","_ref","concat","collapsed","shiftTo","map","filter","mapped","Invalid","explanation","Zone","equals","singleton","LocalZone","_Zone","getTimezoneOffset","otherZone","matchingRegex","RegExp","source","dtfCache","typeToPos","ianaZoneCache","IANAZone","valid","isValidZone","resetCache","isValidSpecifier","match","parseGMTOffset","specifier","formatted","fMonth","fDay","dtf","_ref2","filled","_formatted$i","pos","partsOffset","exec","asTS","over","singleton$1","FixedOffsetZone","fixed","utcInstance","parseSpecifier","r","InvalidZone","NaN","normalizeZone","defaultZone","lowered","now","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","throwOnInvalid","Settings","resetCaches","Locale","z","numberingSystem","intlDTCache","getCachedDTF","locString","intlNumCache","intlRelCache","getCachedRTF","base","cacheKeyOpts","excluded","sourceKeys","_objectWithoutPropertiesLoose","inf","sysLocaleCache","listStuff","defaultOK","englishFn","intlFn","mode","PolyNumberFormatter","useGrouping","minimumIntegerDigits","NumberFormat","getCachedINF","PolyDateFormatter","universal","DateTime","fromMillis","_proto2","toJSDate","tokenFormat","knownFormat","dateTimeHuge","formatString","PolyRelFormatter","isEnglish","style","rtf","_proto3","count","numeric","narrow","units","years","quarters","weeks","days","seconds","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","formatRelativeTime","numbering","specifiedLocale","localeStr","_parseLocaleString","uIndex","options","smaller","calendar","parseLocaleString","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","weekdaysCache","monthsCache","meridiemCache","eraCache","fastNumbersCached","fromOpts","defaultToEN","computedSys","systemLocale","fromObject","_temp","_proto4","hasFTP","isActuallyEn","hasNoWeirdness","clone","alts","getOwnPropertyNames","redefaultToEN","formatStr","ms","utc","mapMonths","mapWeekdays","_this3","_this4","field","matching","fastNumbers","relFormatter","startsWith","other","combineRegexes","_len","regexes","_key","full","combineExtractors","_len2","extractors","_key2","ex","mergedVals","mergedZone","cursor","_ex","parse","_len3","patterns","_key3","_i","_patterns","_patterns$_i","regex","extractor","simpleParse","_len4","_key4","ret","offsetRegex","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","extractISOWeekData","extractISOOrdinalData","sqlTimeRegex","sqlTimeExtensionRegex","int","fallback","extractISOYmd","extractISOTime","extractISOOffset","local","fullOffset","extractIANAZone","isoDuration","extractISODuration","maybeNegate","hasNegativePrefix","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","milliseconds","obsOffsets","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","fromStrings","weekdayStr","result","rfc2822","extractRFC2822","obsOffset","milOffset","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDataAndTime","extractISOTimeAndOffset","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOYmdTimeOffsetAndIANAZone","extractISOTimeOffsetAndIANAZone","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits","reverseUnits","reverse","clear","conf","values","conversionAccuracy","Duration","convert","matrix","fromMap","fromUnit","toMap","toUnit","conv","raw","added","ceil","config","accurate","invalid","isLuxonDuration","normalizeUnit","fromISO","text","week","isDuration","toFormat","fmtOpts","toObject","includeConfig","toISO","toJSON","valueOf","as","plus","duration","friendlyDuration","minus","negate","mapUnits","_Object$keys","reconfigure","normalize","vals","previous","lastUnit","_step2","built","accumulated","_iterator2","own","ak","down","negated","_i2","_Object$keys2","_step3","_iterator3","durationish","INVALID$1","Interval","start","end","isLuxonInterval","fromDateTimes","builtStart","friendlyDateTime","builtEnd","validateError","after","before","_split","split","startIsValid","endIsValid","_dur","isInterval","toDuration","startOf","diff","hasSame","isEmpty","isAfter","dateTime","isBefore","contains","splitAt","dateTimes","sorted","results","splitBy","divideEqually","numberOfParts","overlaps","abutsStart","abutsEnd","engulfs","intersection","union","merge","intervals","_intervals$sort$reduc","b","item","sofar","final","xor","_Array$prototype","currentCount","ends","time","difference","toISODate","toISOTime","dateFormat","_temp2","_ref3$separator","separator","invalidReason","mapEndpoints","mapFn","Info","hasDST","proto","setZone","isValidIANAZone","_ref$locale","_ref$numberingSystem","_ref$outputCalendar","monthsFormat","_ref2$locale","_ref2$numberingSystem","_ref2$outputCalendar","_temp3","_ref3","_ref3$locale","_ref3$numberingSystem","weekdaysFormat","_temp4","_ref4","_ref4$locale","_ref4$numberingSystem","_temp5","_ref5$locale","_temp6","_ref6$locale","features","intlTokens","zones","relative","dayDiff","earlier","later","utcDayStart","toUTC","keepLocalTime","_diff","_highOrderDiffs","lowestOrder","highWater","_differs","_differs$_i","differ","_cursor$plus","_cursor$plus2","delta","highOrderDiffs","remainingMillis","lowerOrderUnits","_cursor$plus3","_Duration$fromMillis","numberingSystems","arab","arabext","bali","beng","deva","fullwide","gujr","hanidec","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","latn","numberingSystemsUTF16","hanidecChars","digitRegex","append","MISSING_FTP","intUnit","post","deser","str","code","charCodeAt","search","_numberingSystemsUTF","min","max","parseDigits","spaceOrNBSP","String","fromCharCode","spaceOrNBSPRegExp","fixListRegex","stripInsensitivities","oneOf","strings","startIndex","join","findIndex","groups","simple","unitForToken","_ref5","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","unitate","partTypeStyleToTokenVal","2-digit","short","long","dayperiod","dayPeriod","dummyDateTimeCache","maybeExpandMacroToken","part","tokenForPart","includes","explainFromTokens","disqualifyingUnit","matches","_buildRegex","handlers","_match","all","matchIndex","h","rawMatches","_ref6","Z","q","M","G","y","S","toField","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","getUTCDay","computeOrdinal","uncomputeOrdinal","table","month0","gregorianToWeek","gregObj","weekToGregorian","weekData","weekdayOfJan4","yearInDays","_uncomputeOrdinal","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","_uncomputeOrdinal2","hasInvalidGregorianData","validYear","validMonth","validDay","hasInvalidTimeData","validHour","validMinute","validSecond","validMillisecond","INVALID$2","unsupportedZone","possiblyCachedWeekData","clone$1","inst","old","fixOffset","localTS","tz","utcGuess","o2","o3","tsToObj","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","objToTS","adjustTime","oPre","millisToAdd","_fixOffset","parseDataToDateTime","parsedZone","interpretationZone","toTechFormat","toTechTimeFormat","_ref$suppressSeconds","suppressSeconds","_ref$suppressMillisec","suppressMilliseconds","includeOffset","_ref$includeZone","includeZone","_ref$spaceZone","spaceZone","_ref$format","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedUnits$1","orderedWeekUnits","orderedOrdinalUnits","weeknumber","weeksnumber","weeknumbers","weekyear","weekyears","quickDT","tsNow","_objToTS","diffRelative","calendary","ot","_zone","isLuxonDateTime","fromJSDate","zoneToUse","fromSeconds","offsetProvis","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","defaultValues","useWeekData","objNow","foundFirst","validOrdinal","validWeek","validWeekday","_objToTS2","_parseISODate","fromRFC2822","_parseRFC2822Date","trim","fromHTTP","_parseHTTPDate","fromFormat","_explainFromTokens","_opts$locale","_opts$numberingSystem","localeToUse","_parseFromTokens","fromString","fromSQL","_parseSQL","isDateTime","resolvedLocaleOpts","_Formatter$create$res","toLocal","_ref3$keepLocalTime","_ref3$keepCalendarTim","keepCalendarTime","newTS","offsetGuess","setLocale","mixed","_objToTS4","normalizedUnit","endOf","_this$plus","toLocaleString","toLocaleParts","_ref5$format","toISOWeekDate","_ref6$suppressMillise","_ref6$suppressSeconds","_ref6$includeOffset","_ref6$format","toRFC2822","toHTTP","toSQLDate","toSQLTime","_ref7","_ref7$includeOffset","_ref7$includeZone","toSQL","toMillis","toSeconds","toBSON","otherDateTime","durOpts","otherIsLater","diffed","diffNow","until","inputMs","toRelative","padding","toRelativeCalendar","every","fromFormatExplain","_options$locale","_options$numberingSys","fromStringExplain","dateTimeish"],"mappings":"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"} \ No newline at end of file diff --git a/npm_assets/node_modules/luxon/build/node/luxon.js b/npm_assets/node_modules/luxon/build/node/luxon.js index 4dbd7b427e..a505a1c647 100644 --- a/npm_assets/node_modules/luxon/build/node/luxon.js +++ b/npm_assets/node_modules/luxon/build/node/luxon.js @@ -86,6 +86,12 @@ const DATE_MED = { month: s, day: n }; +const DATE_MED_WITH_WEEKDAY = { + year: n, + month: s, + day: n, + weekday: s +}; const DATE_FULL = { year: n, month: l, @@ -454,20 +460,19 @@ function normalizeObject(obj, normalizer, nonUnitKeys) { return normalized; } function formatOffset(offset, format) { - const hours = Math.trunc(offset / 60), - minutes = Math.abs(offset % 60), - sign = hours >= 0 && !Object.is(hours, -0) ? "+" : "-", - base = `${sign}${Math.abs(hours)}`; + const hours = Math.trunc(Math.abs(offset / 60)), + minutes = Math.trunc(Math.abs(offset % 60)), + sign = offset >= 0 ? "+" : "-"; switch (format) { case "short": - return `${sign}${padStart(Math.abs(hours), 2)}:${padStart(minutes, 2)}`; + return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`; case "narrow": - return minutes > 0 ? `${base}:${minutes}` : base; + return `${sign}${hours}${minutes > 0 ? `:${minutes}` : ""}`; case "techie": - return `${sign}${padStart(Math.abs(hours), 2)}${padStart(minutes, 2)}`; + return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`; default: throw new RangeError(`Value format ${format} is out of range for property format`); @@ -612,6 +617,9 @@ function formatString(knownFormat) { case stringify(DATE_MED): return "LLL d, yyyy"; + case stringify(DATE_MED_WITH_WEEKDAY): + return "EEE, LLL d, yyyy"; + case stringify(DATE_FULL): return "LLLL d, yyyy"; @@ -2467,7 +2475,7 @@ function simpleParse(...keys) { const offsetRegex = /(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/, - isoTimeBaseRegex = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,9}))?)?)?/, + isoTimeBaseRegex = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/, isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${offsetRegex.source}?`), isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`), isoYmdRegex = /([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/, @@ -2517,7 +2525,7 @@ function extractIANAZone(match, cursor) { } // ISO duration parsing -const isoDuration = /^-?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,9})(?:[.,](-?\d{1,9}))?S)?)?)$/; +const isoDuration = /^-?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 extractISODuration(match) { const [s, yearStr, monthStr, weekStr, dayStr, hourStr, minuteStr, secondStr, millisecondsStr] = match; @@ -2673,6 +2681,7 @@ const lowOrderMatrix = { }, casualMatrix = Object.assign({ years: { + quarters: 4, months: 12, weeks: 52, days: 365, @@ -2687,6 +2696,7 @@ const lowOrderMatrix = { days: 91, hours: 91 * 24, minutes: 91 * 24 * 60, + seconds: 91 * 24 * 60 * 60, milliseconds: 91 * 24 * 60 * 60 * 1000 }, months: { @@ -2702,6 +2712,7 @@ const lowOrderMatrix = { daysInMonthAccurate = 146097.0 / 4800, accurateMatrix = Object.assign({ years: { + quarters: 4, months: 12, weeks: daysInYearAccurate / 7, days: daysInYearAccurate, @@ -3241,7 +3252,6 @@ class Duration { accumulated = {}, vals = this.toObject(); let lastUnit; - normalizeValues(this.matrix, vals); for (const k of orderedUnits) { if (units.indexOf(k) >= 0) { @@ -3479,7 +3489,7 @@ function validateStartEnd(start, end) { * * **Accessors** Use {@link start} and {@link end} to get the start and end. * * **Interrogation** To analyze the Interval, use {@link count}, {@link length}, {@link hasSame}, {@link contains}, {@link isAfter}, or {@link isBefore}. * * **Transformation** To create other Intervals out of this one, use {@link set}, {@link splitAt}, {@link splitBy}, {@link divideEqually}, {@link merge}, {@link xor}, {@link union}, {@link intersection}, or {@link difference}. - * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs} + * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs}. * * **Output** To convert the Interval into other representations, see {@link toString}, {@link toISO}, {@link toISODate}, {@link toISOTime}, {@link toFormat}, and {@link toDuration}. */ @@ -3594,20 +3604,35 @@ class Interval { const [s, e] = (text || "").split("/", 2); if (s && e) { - const start = DateTime.fromISO(s, opts), - end = DateTime.fromISO(e, opts); + let start, startIsValid; - if (start.isValid && end.isValid) { + try { + start = DateTime.fromISO(s, opts); + startIsValid = start.isValid; + } catch (e) { + startIsValid = false; + } + + let end, endIsValid; + + try { + end = DateTime.fromISO(e, opts); + endIsValid = end.isValid; + } catch (e) { + endIsValid = false; + } + + if (startIsValid && endIsValid) { return Interval.fromDateTimes(start, end); } - if (start.isValid) { + if (startIsValid) { const dur = Duration.fromISO(e, opts); if (dur.isValid) { return Interval.after(start, dur); } - } else if (end.isValid) { + } else if (endIsValid) { const dur = Duration.fromISO(s, opts); if (dur.isValid) { @@ -3706,7 +3731,7 @@ class Interval { hasSame(unit) { - return this.isValid ? this.e.minus(1).hasSame(this.s, unit) : false; + return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false; } /** * Return whether this Interval has the same start and end DateTimes. @@ -4191,7 +4216,7 @@ class Info { /** * Return an array of standalone week names. * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat - * @param {string} [length='long'] - the length of the month representation, such as "narrow", "short", "long". + * @param {string} [length='long'] - the length of the weekday representation, such as "narrow", "short", "long". * @param {Object} opts - options * @param {string} [opts.locale] - the locale code * @param {string} [opts.numberingSystem=null] - the numbering system @@ -4214,7 +4239,7 @@ class Info { * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that * changes the string. * See {@link weekdays} - * @param {string} [length='long'] - the length of the month representation, such as "narrow", "short", "long". + * @param {string} [length='long'] - the length of the weekday representation, such as "narrow", "short", "long". * @param {Object} opts - options * @param {string} [opts.locale=null] - the locale code * @param {string} [opts.numberingSystem=null] - the numbering system @@ -4458,13 +4483,20 @@ function intUnit(regex, post = i => i) { }; } +const NBSP = String.fromCharCode(160); +const spaceOrNBSP = `( |${NBSP})`; +const spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, "g"); + function fixListRegex(s) { // make dots optional and also make them literal - return s.replace(/\./, "\\.?"); + // make space and non breakable space characters interchangeable + return s.replace(/\./g, "\\.?").replace(spaceOrNBSPRegExp, spaceOrNBSP); } function stripInsensitivities(s) { - return s.replace(/\./, "").toLowerCase(); + return s.replace(/\./g, "") // ignore dots that were made optional + .replace(spaceOrNBSPRegExp, " ") // interchange space and nbsp + .toLowerCase(); } function oneOf(strings, startIndex) { @@ -5202,22 +5234,20 @@ function objToTS(obj, offset, zone) { function adjustTime(inst, dur) { - const keys = Object.keys(dur.values); - - if (keys.indexOf("milliseconds") === -1) { - keys.push("milliseconds"); - } - - dur = dur.shiftTo(...keys); const oPre = inst.o, - year = inst.c.year + dur.years, - month = inst.c.month + dur.months + dur.quarters * 3, + year = inst.c.year + Math.trunc(dur.years), + month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3, c = Object.assign({}, inst.c, { year, month, - day: Math.min(inst.c.day, daysInMonth(year, month)) + dur.days + dur.weeks * 7 + day: Math.min(inst.c.day, daysInMonth(year, month)) + Math.trunc(dur.days) + Math.trunc(dur.weeks) * 7 }), millisToAdd = Duration.fromObject({ + years: dur.years - Math.trunc(dur.years), + quarters: dur.quarters - Math.trunc(dur.quarters), + months: dur.months - Math.trunc(dur.months), + weeks: dur.weeks - Math.trunc(dur.weeks), + days: dur.days - Math.trunc(dur.days), hours: dur.hours, minutes: dur.minutes, seconds: dur.seconds, @@ -7107,6 +7137,15 @@ class DateTime { static get DATE_MED() { return DATE_MED; } + /** + * {@link toLocaleString} format like 'Fri, Oct 14, 1983' + * @type {Object} + */ + + + static get DATE_MED_WITH_WEEKDAY() { + return DATE_MED_WITH_WEEKDAY; + } /** * {@link toLocaleString} format like 'October 14, 1983' * @type {Object} diff --git a/npm_assets/node_modules/luxon/build/node/luxon.js.map b/npm_assets/node_modules/luxon/build/node/luxon.js.map index 8dc92e83fd..ed15c1e338 100644 --- a/npm_assets/node_modules/luxon/build/node/luxon.js.map +++ b/npm_assets/node_modules/luxon/build/node/luxon.js.map @@ -1 +1 @@ -{"version":3,"file":"luxon.js","sources":["../../src/errors.js","../../src/impl/formats.js","../../src/impl/util.js","../../src/impl/english.js","../../src/impl/formatter.js","../../src/impl/invalid.js","../../src/zone.js","../../src/zones/localZone.js","../../src/zones/IANAZone.js","../../src/zones/fixedOffsetZone.js","../../src/zones/invalidZone.js","../../src/impl/zoneUtil.js","../../src/settings.js","../../src/impl/locale.js","../../src/impl/regexParser.js","../../src/duration.js","../../src/interval.js","../../src/info.js","../../src/impl/diff.js","../../src/impl/digits.js","../../src/impl/tokenParser.js","../../src/impl/conversions.js","../../src/datetime.js"],"sourcesContent":["// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nclass LuxonError extends Error {}\n\n/**\n * @private\n */\nexport class InvalidDateTimeError extends LuxonError {\n constructor(reason) {\n super(`Invalid DateTime: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidIntervalError extends LuxonError {\n constructor(reason) {\n super(`Invalid Interval: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidDurationError extends LuxonError {\n constructor(reason) {\n super(`Invalid Duration: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class ConflictingSpecificationError extends LuxonError {}\n\n/**\n * @private\n */\nexport class InvalidUnitError extends LuxonError {\n constructor(unit) {\n super(`Invalid unit ${unit}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidArgumentError extends LuxonError {}\n\n/**\n * @private\n */\nexport class ZoneIsAbstractError extends LuxonError {\n constructor() {\n super(\"Zone is an abstract class\");\n }\n}\n","/**\n * @private\n */\n\nconst n = \"numeric\",\n s = \"short\",\n l = \"long\";\n\nexport const DATE_SHORT = {\n year: n,\n month: n,\n day: n\n};\n\nexport const DATE_MED = {\n year: n,\n month: s,\n day: n\n};\n\nexport const DATE_FULL = {\n year: n,\n month: l,\n day: n\n};\n\nexport const DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l\n};\n\nexport const TIME_SIMPLE = {\n hour: n,\n minute: n\n};\n\nexport const TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n\n};\n\nexport const TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n\nexport const TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23', always 24-hour.\n */\nexport const TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 EDT', always 24-hour.\n */\nexport const TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: s\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 Eastern Daylight Time', always 24-hour.\n */\nexport const TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: l\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s\n};\n\nexport const DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l\n};\n\nexport const DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n","/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\nimport { InvalidArgumentError } from \"../errors.js\";\n\n/**\n * @private\n */\n\n// TYPES\n\nexport function isUndefined(o) {\n return typeof o === \"undefined\";\n}\n\nexport function isNumber(o) {\n return typeof o === \"number\";\n}\n\nexport function isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\n\nexport function isString(o) {\n return typeof o === \"string\";\n}\n\nexport function isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nexport function hasIntl() {\n try {\n return typeof Intl !== \"undefined\" && Intl.DateTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\nexport function hasFormatToParts() {\n return !isUndefined(Intl.DateTimeFormat.prototype.formatToParts);\n}\n\nexport function hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nexport function maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\n\nexport function bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\n\nexport function pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\n\nexport function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n// NUMBERS AND STRINGS\n\nexport function integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nexport function floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\n\nexport function padStart(input, n = 2) {\n if (input.toString().length < n) {\n return (\"0\".repeat(n) + input).slice(-n);\n } else {\n return input.toString();\n }\n}\n\nexport function parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\n\nexport function parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\n\nexport function roundTo(number, digits, towardZero = false) {\n const factor = 10 ** digits,\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nexport function isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// covert a calendar object to a local timestamp (epoch, but with the offset baked in)\nexport function objToLocalTS(obj) {\n let d = Date.UTC(\n obj.year,\n obj.month - 1,\n obj.day,\n obj.hour,\n obj.minute,\n obj.second,\n obj.millisecond\n );\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n return +d;\n}\n\nexport function weeksInWeekYear(weekYear) {\n const p1 =\n (weekYear +\n Math.floor(weekYear / 4) -\n Math.floor(weekYear / 100) +\n Math.floor(weekYear / 400)) %\n 7,\n last = weekYear - 1,\n p2 = (last + Math.floor(last / 4) - Math.floor(last / 100) + Math.floor(last / 400)) % 7;\n return p1 === 4 || p2 === 3 ? 53 : 52;\n}\n\nexport function untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > 60 ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nexport function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hour12: false,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\"\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n const modified = Object.assign({ timeZoneName: offsetFormat }, intlOpts),\n intl = hasIntl();\n\n if (intl && hasFormatToParts()) {\n const parsed = new Intl.DateTimeFormat(locale, modified)\n .formatToParts(date)\n .find(m => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n } else if (intl) {\n // this probably doesn't work for all locales\n const without = new Intl.DateTimeFormat(locale, intlOpts).format(date),\n included = new Intl.DateTimeFormat(locale, modified).format(date),\n diffed = included.substring(without.length),\n trimmed = diffed.replace(/^[, \\u200e]+/, \"\");\n return trimmed;\n } else {\n return null;\n }\n}\n\n// signedOffset('-5', '30') -> -330\nexport function signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nexport function asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue))\n throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\n\nexport function normalizeObject(obj, normalizer, nonUnitKeys) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n if (nonUnitKeys.indexOf(u) >= 0) continue;\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\nexport function formatOffset(offset, format) {\n const hours = Math.trunc(offset / 60),\n minutes = Math.abs(offset % 60),\n sign = hours >= 0 && !Object.is(hours, -0) ? \"+\" : \"-\",\n base = `${sign}${Math.abs(hours)}`;\n\n switch (format) {\n case \"short\":\n return `${sign}${padStart(Math.abs(hours), 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return minutes > 0 ? `${base}:${minutes}` : base;\n case \"techie\":\n return `${sign}${padStart(Math.abs(hours), 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\n\nexport function timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n\nexport const ianaRegex = /[A-Za-z_+-]{1,256}(:?\\/[A-Za-z_+-]{1,256}(\\/[A-Za-z_+-]{1,256})?)?/;\n","import * as Formats from \"./formats.js\";\nimport { pick } from \"./util.js\";\n\nfunction stringify(obj) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n}\n\n/**\n * @private\n */\n\nexport const monthsLong = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\n\nexport const monthsShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n];\n\nexport const monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nexport function months(length) {\n switch (length) {\n case \"narrow\":\n return monthsNarrow;\n case \"short\":\n return monthsShort;\n case \"long\":\n return monthsLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\n\nexport const weekdaysLong = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\"\n];\n\nexport const weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nexport const weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nexport function weekdays(length) {\n switch (length) {\n case \"narrow\":\n return weekdaysNarrow;\n case \"short\":\n return weekdaysShort;\n case \"long\":\n return weekdaysLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\n\nexport const meridiems = [\"AM\", \"PM\"];\n\nexport const erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nexport const erasShort = [\"BC\", \"AD\"];\n\nexport const erasNarrow = [\"B\", \"A\"];\n\nexport function eras(length) {\n switch (length) {\n case \"narrow\":\n return erasNarrow;\n case \"short\":\n return erasShort;\n case \"long\":\n return erasLong;\n default:\n return null;\n }\n}\n\nexport function meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nexport function weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\n\nexport function monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\n\nexport function eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nexport function formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"]\n };\n\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n default: // fall through\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow\n ? singular\n ? lilUnits[1]\n : lilUnits[2] || lilUnits[1]\n : singular\n ? units[unit][0]\n : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nexport function formatString(knownFormat) {\n // these all have the offsets removed because we don't have access to them\n // without all the intl stuff this is backfilling\n const filtered = pick(knownFormat, [\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n \"hour12\"\n ]),\n key = stringify(filtered),\n dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n switch (key) {\n case stringify(Formats.DATE_SHORT):\n return \"M/d/yyyy\";\n case stringify(Formats.DATE_MED):\n return \"LLL d, yyyy\";\n case stringify(Formats.DATE_FULL):\n return \"LLLL d, yyyy\";\n case stringify(Formats.DATE_HUGE):\n return \"EEEE, LLLL d, yyyy\";\n case stringify(Formats.TIME_SIMPLE):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_SECONDS):\n return \"h:mm:ss a\";\n case stringify(Formats.TIME_WITH_SHORT_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_LONG_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_24_SIMPLE):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_SECONDS):\n return \"HH:mm:ss\";\n case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_LONG_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.DATETIME_SHORT):\n return \"M/d/yyyy, h:mm a\";\n case stringify(Formats.DATETIME_MED):\n return \"LLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL):\n return \"LLLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_HUGE):\n return dateTimeHuge;\n case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):\n return \"M/d/yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_SECONDS):\n return \"LLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):\n return \"EEE, d LLL yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL_WITH_SECONDS):\n return \"LLLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):\n return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n default:\n return dateTimeHuge;\n }\n}\n","import * as English from \"./english.js\";\nimport * as Formats from \"./formats.js\";\nimport { hasFormatToParts, padStart } from \"./util.js\";\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\n\nconst macroTokenToFormatOpts = {\n D: Formats.DATE_SHORT,\n DD: Formats.DATE_MED,\n DDD: Formats.DATE_FULL,\n DDDD: Formats.DATE_HUGE,\n t: Formats.TIME_SIMPLE,\n tt: Formats.TIME_WITH_SECONDS,\n ttt: Formats.TIME_WITH_SHORT_OFFSET,\n tttt: Formats.TIME_WITH_LONG_OFFSET,\n T: Formats.TIME_24_SIMPLE,\n TT: Formats.TIME_24_WITH_SECONDS,\n TTT: Formats.TIME_24_WITH_SHORT_OFFSET,\n TTTT: Formats.TIME_24_WITH_LONG_OFFSET,\n f: Formats.DATETIME_SHORT,\n ff: Formats.DATETIME_MED,\n fff: Formats.DATETIME_FULL,\n ffff: Formats.DATETIME_HUGE,\n F: Formats.DATETIME_SHORT_WITH_SECONDS,\n FF: Formats.DATETIME_MED_WITH_SECONDS,\n FFF: Formats.DATETIME_FULL_WITH_SECONDS,\n FFFF: Formats.DATETIME_HUGE_WITH_SECONDS\n};\n\n/**\n * @private\n */\n\nexport default class Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n\n static parseFormat(fmt) {\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({ literal: false, val: currentFull });\n }\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n\n return splits;\n }\n\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTime(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTimeParts(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.formatToParts();\n }\n\n resolvedOptions(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.resolvedOptions();\n }\n\n num(n, p = 0) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n const opts = Object.assign({}, this.opts);\n\n if (p > 0) {\n opts.padTo = p;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n }\n\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter =\n this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\" && hasFormatToParts(),\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = opts => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () =>\n knownEnglish\n ? English.meridiemForDateTime(dt)\n : string({ hour: \"numeric\", hour12: true }, \"dayperiod\"),\n month = (length, standalone) =>\n knownEnglish\n ? English.monthForDateTime(dt, length)\n : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n weekday = (length, standalone) =>\n knownEnglish\n ? English.weekdayForDateTime(dt, length)\n : string(\n standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n \"weekday\"\n ),\n maybeMacro = token => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = length =>\n knownEnglish ? English.eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n tokenToString = token => {\n // Where possible: http://cldr.unicode.org/translation/date-time#TOC-Stand-Alone-vs.-Format-Styles\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n case \"ZZ\":\n // like +06:00\n return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n case \"ZZZ\":\n // like +0600\n return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter\n ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter\n ? string({ month: \"2-digit\" }, \"month\")\n : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter\n ? string({ year: \"2-digit\" }, \"year\")\n : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n\n formatDurationFromString(dur, fmt) {\n const tokenToField = token => {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = lildur => token => {\n const mapped = tokenToField(token);\n if (mapped) {\n return this.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(\n (found, { literal, val }) => (literal ? found : found.concat(val)),\n []\n ),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter(t => t));\n return stringifyTokens(tokens, tokenToString(collapsed));\n }\n}\n","export default class Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n","/* eslint no-unused-vars: \"off\" */\nimport { ZoneIsAbstractError } from \"./errors.js\";\n\n/**\n * @interface\n */\nexport default class Zone {\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get type() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n get name() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n get universal() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */\n get isValid() {\n throw new ZoneIsAbstractError();\n }\n}\n","import { formatOffset, parseZoneInfo, hasIntl } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * Represents the local zone for this Javascript environment.\n * @implements {Zone}\n */\nexport default class LocalZone extends Zone {\n /**\n * Get a singleton instance of the local zone\n * @return {LocalZone}\n */\n static get instance() {\n if (singleton === null) {\n singleton = new LocalZone();\n }\n return singleton;\n }\n\n /** @override **/\n get type() {\n return \"local\";\n }\n\n /** @override **/\n get name() {\n if (hasIntl()) {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n } else return \"local\";\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"local\";\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import { formatOffset, parseZoneInfo, isUndefined, ianaRegex, objToLocalTS } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nconst matchingRegex = RegExp(`^${ianaRegex.source}$`);\n\nlet dtfCache = {};\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n });\n }\n return dtfCache[zone];\n}\n\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n};\n\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed;\n return [fYear, fMonth, fDay, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n const formatted = dtf.formatToParts(date),\n filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const { type, value } = formatted[i],\n pos = typeToPos[type];\n\n if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\n\nlet ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nexport default class IANAZone extends Zone {\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n static create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n return ianaZoneCache[name];\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Fantasia/Castle\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return !!(s && s.match(matchingRegex));\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n // Etc/GMT+8 -> -480\n /** @ignore */\n static parseGMTOffset(specifier) {\n if (specifier) {\n const match = specifier.match(/^Etc\\/GMT([+-]\\d{1,2})$/i);\n if (match) {\n return -60 * parseInt(match[1]);\n }\n }\n return null;\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /** @override **/\n get type() {\n return \"iana\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n const date = new Date(ts),\n dtf = makeDTF(this.name),\n [year, month, day, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date),\n // work around https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /** @override **/\n get isValid() {\n return this.valid;\n }\n}\n","import { formatOffset, signedOffset } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nexport default class FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /** @override **/\n get type() {\n return \"fixed\";\n }\n\n /** @override **/\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n /** @override **/\n offsetName() {\n return this.name;\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /** @override **/\n get universal() {\n return true;\n }\n\n /** @override **/\n offset() {\n return this.fixed;\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import Zone from \"../zone.js\";\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nexport default class InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n","/**\n * @private\n */\n\nimport Zone from \"../zone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport InvalidZone from \"../zones/invalidZone.js\";\n\nimport { isUndefined, isString, isNumber } from \"./util.js\";\n\nexport function normalizeZone(input, defaultZone) {\n let offset;\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"local\") return defaultZone;\n else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n else if ((offset = IANAZone.parseGMTOffset(input)) != null) {\n // handle Etc/GMT-4, which V8 chokes on\n return FixedOffsetZone.instance(offset);\n } else if (IANAZone.isValidSpecifier(lowered)) return IANAZone.create(input);\n else return FixedOffsetZone.parseSpecifier(lowered) || new InvalidZone(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && input.offset && typeof input.offset === \"number\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n","import LocalZone from \"./zones/localZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport Locale from \"./impl/locale.js\";\n\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nlet now = () => Date.now(),\n defaultZone = null, // not setting this directly to LocalZone.instance bc loading order issues\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n throwOnInvalid = false;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nexport default class Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Get the default time zone to create DateTimes in.\n * @type {string}\n */\n static get defaultZoneName() {\n return Settings.defaultZone.name;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * @type {string}\n */\n static set defaultZoneName(z) {\n if (!z) {\n defaultZone = null;\n } else {\n defaultZone = normalizeZone(z);\n }\n }\n\n /**\n * Get the default time zone object to create DateTimes in. Does not affect existing instances.\n * @type {Zone}\n */\n static get defaultZone() {\n return defaultZone || LocalZone.instance;\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n }\n}\n","import { hasFormatToParts, hasIntl, padStart, roundTo, hasRelative } from \"./util.js\";\nimport * as English from \"./english.js\";\nimport Settings from \"../settings.js\";\nimport DateTime from \"../datetime.js\";\nimport Formatter from \"./formatter.js\";\n\nlet intlDTCache = {};\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlNumCache = {};\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\n\nlet intlRelCache = {};\nfunction getCachedRTF(locString, opts = {}) {\n const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else if (hasIntl()) {\n const computedSys = new Intl.DateTimeFormat().resolvedOptions().locale;\n // node sometimes defaults to \"und\". Override that because that is dumb\n sysLocaleCache = !computedSys || computedSys === \"und\" ? \"en-US\" : computedSys;\n return sysLocaleCache;\n } else {\n sysLocaleCache = \"en-US\";\n return sysLocaleCache;\n }\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n const smaller = localeStr.substring(0, uIndex);\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n } catch (e) {\n options = getCachedDTF(smaller).resolvedOptions();\n }\n\n const { numberingSystem, calendar } = options;\n // return the smaller one so that we can append the calendar and numbering overrides to it\n return [smaller, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (hasIntl()) {\n if (outputCalendar || numberingSystem) {\n localeStr += \"-u\";\n\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n } else {\n return [];\n }\n}\n\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2016, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction listStuff(loc, length, defaultOK, englishFn, intlFn) {\n const mode = loc.listingMode(defaultOK);\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return (\n loc.numberingSystem === \"latn\" ||\n !loc.locale ||\n loc.locale.startsWith(\"en\") ||\n (hasIntl() && new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\")\n );\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n if (!forceSimple && hasIntl()) {\n const intlOpts = { useGrouping: false };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n this.hasIntl = hasIntl();\n\n let z;\n if (dt.zone.universal && this.hasIntl) {\n // Chromium doesn't support fixed-offset zones like Etc/GMT+8 in its formatter,\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=364374.\n // So we have to make do. Two cases:\n // 1. The format options tell us to show the zone. We can't do that, so the best\n // we can do is format the date in UTC.\n // 2. The format options don't tell us to show the zone. Then we can adjust them\n // the time and tell the formatter to show it to us in UTC, so that the time is right\n // and the bad zone doesn't show up.\n // We can clean all this up when Chrome fixes this.\n z = \"UTC\";\n if (opts.timeZoneName) {\n this.dt = dt;\n } else {\n this.dt = dt.offset === 0 ? dt : DateTime.fromMillis(dt.ts + dt.offset * 60 * 1000);\n }\n } else if (dt.zone.type === \"local\") {\n this.dt = dt;\n } else {\n this.dt = dt;\n z = dt.zone.name;\n }\n\n if (this.hasIntl) {\n const intlOpts = Object.assign({}, this.opts);\n if (z) {\n intlOpts.timeZone = z;\n }\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n }\n\n format() {\n if (this.hasIntl) {\n return this.dtf.format(this.dt.toJSDate());\n } else {\n const tokenFormat = English.formatString(this.opts),\n loc = Locale.create(\"en-US\");\n return Formatter.create(loc).formatDateTimeFromString(this.dt, tokenFormat);\n }\n }\n\n formatToParts() {\n if (this.hasIntl && hasFormatToParts()) {\n return this.dtf.formatToParts(this.dt.toJSDate());\n } else {\n // This is kind of a cop out. We actually could do this for English. However, we couldn't do it for intl strings\n // and IMO it's too weird to have an uncanny valley like that\n return [];\n }\n }\n\n resolvedOptions() {\n if (this.hasIntl) {\n return this.dtf.resolvedOptions();\n } else {\n return {\n locale: \"en-US\",\n numberingSystem: \"latn\",\n outputCalendar: \"gregory\"\n };\n }\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = Object.assign({ style: \"long\" }, opts);\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return English.formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\n\n/**\n * @private\n */\n\nexport default class Locale {\n static fromOpts(opts) {\n return Locale.create(opts.locale, opts.numberingSystem, opts.outputCalendar, opts.defaultToEN);\n }\n\n static create(locale, numberingSystem, outputCalendar, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale,\n // the system locale is useful for human readable strings but annoying for parsing/formatting known formats\n localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale()),\n numberingSystemR = numberingSystem || Settings.defaultNumberingSystem,\n outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n return new Locale(localeR, numberingSystemR, outputCalendarR, specifiedLocale);\n }\n\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n }\n\n static fromObject({ locale, numberingSystem, outputCalendar } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar);\n }\n\n constructor(locale, numbering, outputCalendar, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n this.weekdaysCache = { format: {}, standalone: {} };\n this.monthsCache = { format: {}, standalone: {} };\n this.meridiemCache = null;\n this.eraCache = {};\n\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n\n listingMode(defaultOK = true) {\n const intl = hasIntl(),\n hasFTP = intl && hasFormatToParts(),\n isActuallyEn = this.isEnglish(),\n hasNoWeirdness =\n (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n\n if (!hasFTP && !(isActuallyEn && hasNoWeirdness) && !defaultOK) {\n return \"error\";\n } else if (!hasFTP || (isActuallyEn && hasNoWeirdness)) {\n return \"en\";\n } else {\n return \"intl\";\n }\n }\n\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(\n alts.locale || this.specifiedLocale,\n alts.numberingSystem || this.numberingSystem,\n alts.outputCalendar || this.outputCalendar,\n alts.defaultToEN || false\n );\n }\n }\n\n redefaultToEN(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: true }));\n }\n\n redefaultToSystem(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: false }));\n }\n\n months(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.months, () => {\n const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n this.monthsCache[formatStr][length] = mapMonths(dt => this.extract(dt, intl, \"month\"));\n }\n return this.monthsCache[formatStr][length];\n });\n }\n\n weekdays(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.weekdays, () => {\n const intl = format\n ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n : { weekday: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays(dt =>\n this.extract(dt, intl, \"weekday\")\n );\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n\n meridiems(defaultOK = true) {\n return listStuff(\n this,\n undefined,\n defaultOK,\n () => English.meridiems,\n () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = { hour: \"numeric\", hour12: true };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n dt => this.extract(dt, intl, \"dayperiod\")\n );\n }\n\n return this.meridiemCache;\n }\n );\n }\n\n eras(length, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.eras, () => {\n const intl = { era: length };\n\n // This is utter bullshit. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map(dt =>\n this.extract(dt, intl, \"era\")\n );\n }\n\n return this.eraCache[length];\n });\n }\n\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find(m => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n\n isEnglish() {\n return (\n this.locale === \"en\" ||\n this.locale.toLowerCase() === \"en-us\" ||\n (hasIntl() && new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\"))\n );\n }\n\n equals(other) {\n return (\n this.locale === other.locale &&\n this.numberingSystem === other.numberingSystem &&\n this.outputCalendar === other.outputCalendar\n );\n }\n}\n","import {\n untruncateYear,\n signedOffset,\n parseInteger,\n parseMillis,\n ianaRegex,\n isUndefined\n} from \"./util.js\";\nimport * as English from \"./english.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n return m =>\n extractors\n .reduce(\n ([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [Object.assign(mergedVals, val), mergedZone || zone, next];\n },\n [{}, null, 1]\n )\n .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\n\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/,\n isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,9}))?)?)?/,\n isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${offsetRegex.source}?`),\n isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`),\n isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/,\n isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/,\n isoOrdinalRegex = /(\\d{4})-?(\\d{3})/,\n extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\"),\n extractISOOrdinalData = simpleParse(\"year\", \"ordinal\"),\n sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/, // dumbed-down version of the ISO one\n sqlTimeRegex = RegExp(\n `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n ),\n sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1)\n };\n\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n const item = {\n hour: int(match, cursor, 0),\n minute: int(match, cursor + 1, 0),\n second: int(match, cursor + 2, 0),\n millisecond: parseMillis(match[cursor + 3])\n };\n\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO duration parsing\n\nconst isoDuration = /^-?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,9})(?:[.,](-?\\d{1,9}))?S)?)?)$/;\n\nfunction extractISODuration(match) {\n const [\n s,\n yearStr,\n monthStr,\n weekStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr,\n millisecondsStr\n ] = match;\n\n const hasNegativePrefix = s[0] === \"-\";\n\n const maybeNegate = num => (num && hasNegativePrefix ? -num : num);\n\n return [\n {\n years: maybeNegate(parseInteger(yearStr)),\n months: maybeNegate(parseInteger(monthStr)),\n weeks: maybeNegate(parseInteger(weekStr)),\n days: maybeNegate(parseInteger(dayStr)),\n hours: maybeNegate(parseInteger(hourStr)),\n minutes: maybeNegate(parseInteger(minuteStr)),\n seconds: maybeNegate(parseInteger(secondStr)),\n milliseconds: maybeNegate(parseMillis(millisecondsStr))\n }\n ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\n\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: English.monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr)\n };\n\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday =\n weekdayStr.length > 3\n ? English.weekdaysLong.indexOf(weekdayStr) + 1\n : English.weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 = /^(?:(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)))$/;\n\nfunction extractRFC2822(match) {\n const [\n ,\n weekdayStr,\n dayStr,\n monthStr,\n yearStr,\n hourStr,\n minuteStr,\n secondStr,\n obsOffset,\n milOffset,\n offHourStr,\n offMinuteStr\n ] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, \" \")\n .replace(/(\\s\\s+)/g, \" \")\n .trim();\n}\n\n// http date\n\nconst rfc1123 = /^(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$/,\n rfc850 = /^(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$/,\n ascii = /^(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})$/;\n\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n extractISOWeekData,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOOrdinalDataAndTime = combineExtractors(extractISOOrdinalData, extractISOTime);\nconst extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset);\n\n/**\n * @private\n */\n\nexport function parseISODate(s) {\n return parse(\n s,\n [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDataAndTime],\n [isoTimeCombinedRegex, extractISOTimeAndOffset]\n );\n}\n\nexport function parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nexport function parseHTTPDate(s) {\n return parse(\n s,\n [rfc1123, extractRFC1123Or850],\n [rfc850, extractRFC1123Or850],\n [ascii, extractASCII]\n );\n}\n\nexport function parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOYmdTimeOffsetAndIANAZone = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\nexport function parseSQL(s) {\n return parse(\n s,\n [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeOffsetAndIANAZone],\n [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n );\n}\n","import { InvalidArgumentError, InvalidDurationError, InvalidUnitError } from \"./errors.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Locale from \"./impl/locale.js\";\nimport { parseISODuration } from \"./impl/regexParser.js\";\nimport {\n asNumber,\n hasOwnProperty,\n isNumber,\n isUndefined,\n normalizeObject,\n roundTo\n} from \"./impl/util.js\";\nimport Settings from \"./settings.js\";\n\nconst INVALID = \"Invalid Duration\";\n\n// unit conversion constants\nconst lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000\n },\n hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n minutes: { seconds: 60, milliseconds: 60 * 1000 },\n seconds: { milliseconds: 1000 }\n },\n casualMatrix = Object.assign(\n {\n years: {\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n ),\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = Object.assign(\n {\n years: {\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: (daysInYearAccurate * 24) / 4,\n minutes: (daysInYearAccurate * 24 * 60) / 4,\n seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n );\n\n// units ordered by size\nconst orderedUnits = [\n \"years\",\n \"quarters\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n];\n\nconst reverseUnits = orderedUnits.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : Object.assign({}, dur.values, alts.values || {}),\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy\n };\n return new Duration(conf);\n}\n\nfunction antiTrunc(n) {\n return n < 0 ? Math.floor(n) : Math.ceil(n);\n}\n\n// NB: mutates parameters\nfunction convert(matrix, fromMap, fromUnit, toMap, toUnit) {\n const conv = matrix[toUnit][fromUnit],\n raw = fromMap[fromUnit] / conv,\n sameSign = Math.sign(raw) === Math.sign(toMap[toUnit]),\n // ok, so this is wild, but see the matrix in the tests\n added =\n !sameSign && toMap[toUnit] !== 0 && Math.abs(raw) <= 1 ? antiTrunc(raw) : Math.trunc(raw);\n toMap[toUnit] += added;\n fromMap[fromUnit] -= added * conv;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n reverseUnits.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n convert(matrix, vals, previous, vals, current);\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime.plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration.years}, {@link Duration.months}, {@link Duration.weeks}, {@link Duration.days}, {@link Duration.hours}, {@link Duration.minutes}, {@link Duration.seconds}, {@link Duration.milliseconds} accessors.\n * * **Configuration** See {@link Duration.locale} and {@link Duration.numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration.plus}, {@link Duration.minus}, {@link Duration.normalize}, {@link Duration.set}, {@link Duration.reconfigure}, {@link Duration.shiftTo}, and {@link Duration.negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration.as}, {@link Duration.toISO}, {@link Duration.toFormat}, and {@link Duration.toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nexport default class Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = accurate ? accurateMatrix : casualMatrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject(Object.assign({ milliseconds: count }, opts));\n }\n\n /**\n * Create a Duration from a Javascript object with keys like 'years' and 'hours.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {string} [obj.locale='en-US'] - the locale to use\n * @param {string} obj.numberingSystem - the numbering system to use\n * @param {string} [obj.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromObject(obj) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\n `Duration.fromObject: argument expected to be an object, got ${\n obj === null ? \"null\" : typeof obj\n }`\n );\n }\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit, [\n \"locale\",\n \"numberingSystem\",\n \"conversionAccuracy\",\n \"zone\" // a bit of debt; it's super inconvenient internally not to be able to blindly pass this\n ]),\n loc: Locale.fromObject(obj),\n conversionAccuracy: obj.conversionAccuracy\n });\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n const obj = Object.assign(parsed, opts);\n return Duration.fromObject(obj);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({ invalid });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\"\n }[unit ? unit.toLowerCase() : unit];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return (o && o.isLuxonDuration) || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * The duration will be converted to the set of units in the format string using {@link Duration.shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = Object.assign({}, opts, {\n floor: opts.round !== false && opts.floor !== false\n });\n return this.isValid\n ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a Javascript object with this Duration's values.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.values);\n\n if (opts.includeConfig) {\n base.conversionAccuracy = this.conversionAccuracy;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n valueOf() {\n return this.as(\"milliseconds\");\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration),\n result = {};\n\n for (const k of orderedUnits) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone(this, { values: result }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit((x, u) => u === \"hour\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone(this, { values: result }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).years //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).months //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).days //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const mixed = Object.assign(this.values, normalizeObject(values, Duration.normalizeUnit, []));\n return clone(this, { values: mixed });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({ locale, numberingSystem, conversionAccuracy } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem }),\n opts = { loc };\n\n if (conversionAccuracy) {\n opts.conversionAccuracy = conversionAccuracy;\n }\n\n return clone(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map(u => Duration.normalizeUnit(u));\n\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n\n normalizeValues(this.matrix, vals);\n\n for (const k of orderedUnits) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = own - i; // we'd like to absorb these fractions in another unit\n\n // plus anything further down the chain that should be rolled up in to this\n for (const down in vals) {\n if (orderedUnits.indexOf(down) > orderedUnits.indexOf(k)) {\n convert(this.matrix, vals, down, built, k);\n }\n }\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] +=\n key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n return clone(this, { values: built }, true).normalize();\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = -this.values[k];\n }\n return clone(this, { values: negated }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n for (const u of orderedUnits) {\n if (this.values[u] !== other.values[u]) {\n return false;\n }\n }\n return true;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDuration(durationish) {\n if (isNumber(durationish)) {\n return Duration.fromMillis(durationish);\n } else if (Duration.isDuration(durationish)) {\n return durationish;\n } else if (typeof durationish === \"object\") {\n return Duration.fromObject(durationish);\n } else {\n throw new InvalidArgumentError(\n `Unknown duration argument ${durationish} of type ${typeof durationish}`\n );\n }\n}\n","import DateTime, { friendlyDateTime } from \"./datetime.js\";\nimport Duration, { friendlyDuration } from \"./duration.js\";\nimport Settings from \"./settings.js\";\nimport { InvalidArgumentError, InvalidIntervalError } from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\n \"end before start\",\n `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n );\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link fromDateTimes}, {@link after}, {@link before}, or {@link fromISO}.\n * * **Accessors** Use {@link start} and {@link end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link count}, {@link length}, {@link hasSame}, {@link contains}, {@link isAfter}, or {@link isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link set}, {@link splitAt}, {@link splitBy}, {@link divideEqually}, {@link merge}, {@link xor}, {@link union}, {@link intersection}, or {@link difference}.\n * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs}\n * * **Output** To convert the Interval into other representations, see {@link toString}, {@link toISO}, {@link toISODate}, {@link toISOTime}, {@link toFormat}, and {@link toDuration}.\n */\nexport default class Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({ invalid });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n\n const validateError = validateStartEnd(builtStart, builtEnd);\n\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `<start>/<end>`, `<start>/<duration>`, and `<duration>/<end>` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime.fromISO} and optionally {@link Duration.fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n const start = DateTime.fromISO(s, opts),\n end = DateTime.fromISO(e, opts);\n\n if (start.isValid && end.isValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (start.isValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (end.isValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return (o && o.isLuxonInterval) || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @return {number}\n */\n count(unit = \"milliseconds\") {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit),\n end = this.end.startOf(unit);\n return Math.floor(end.diff(start, unit).get(unit)) + 1;\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({ start, end } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...[DateTime]} dateTimes - the unit of time to count.\n * @return {[Interval]}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes\n .map(friendlyDateTime)\n .filter(d => this.contains(d))\n .sort(),\n results = [];\n let { s } = this,\n i = 0;\n\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {[Interval]}\n */\n splitBy(duration) {\n const dur = friendlyDuration(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n let { s } = this,\n added,\n next;\n\n const results = [];\n while (s < this.e) {\n added = s.plus(dur);\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {[Interval]}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Return whether this Interval engulfs the start and end of the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s > e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static merge(intervals) {\n const [found, final] = intervals.sort((a, b) => a.s - b.s).reduce(\n ([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n },\n [[], null]\n );\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map(i => [{ time: i.s, type: \"s\" }, { time: i.e, type: \"e\" }]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {[Interval]}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals))\n .map(i => this.intersection(i))\n .filter(i => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format string.\n * @param {string} dateFormat - the format string. This string formats the start and end time. See {@link DateTime.toFormat} for details.\n * @param {Object} opts - options\n * @param {string} [opts.separator = ' – '] - a separator to place between the start and end representations\n * @return {string}\n */\n toFormat(dateFormat, { separator = \" – \" } = {}) {\n if (!this.isValid) return INVALID;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n","import DateTime from \"./datetime.js\";\nimport Settings from \"./settings.js\";\nimport Locale from \"./impl/locale.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nimport { hasFormatToParts, hasIntl, hasRelative } from \"./impl/util.js\";\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nexport default class Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.local()\n .setZone(zone)\n .set({ month: 12 });\n\n return !zone.universal && proto.offset !== proto.set({ month: 6 }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidSpecifier(zone) && IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone.isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n * @return {[string]}\n */\n static months(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {[string]}\n */\n static monthsFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {[string]}\n */\n static weekdays(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link weekdays}\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @return {[string]}\n */\n static weekdaysFormat(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {[string]}\n */\n static meridiems({ locale = null } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {[string]}\n */\n static eras(length = \"short\", { locale = null } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, timezone support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `zones`: whether this environment supports IANA timezones\n * * `intlTokens`: whether this environment supports internationalized token-based formatting/parsing\n * * `intl`: whether this environment supports general internationalization\n * * `relative`: whether this environment supports relative time formatting\n * @example Info.features() //=> { intl: true, intlTokens: false, zones: true, relative: false }\n * @return {Object}\n */\n static features() {\n let intl = false,\n intlTokens = false,\n zones = false,\n relative = false;\n\n if (hasIntl()) {\n intl = true;\n intlTokens = hasFormatToParts();\n relative = hasRelative();\n\n try {\n zones =\n new Intl.DateTimeFormat(\"en\", { timeZone: \"America/New_York\" }).resolvedOptions()\n .timeZone === \"America/New_York\";\n } catch (e) {\n zones = false;\n }\n }\n\n return { intl, intlTokens, zones, relative };\n }\n}\n","import Duration from \"../duration.js\";\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = dt =>\n dt\n .toUTC(0, { keepLocalTime: true })\n .startOf(\"day\")\n .valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [\n [\"years\", (a, b) => b.year - a.year],\n [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n [\n \"weeks\",\n (a, b) => {\n const days = dayDiff(a, b);\n return (days - (days % 7)) / 7;\n }\n ],\n [\"days\", dayDiff]\n ];\n\n const results = {};\n let lowestOrder, highWater;\n\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n\n let delta = differ(cursor, later);\n highWater = cursor.plus({ [unit]: delta });\n\n if (highWater > later) {\n cursor = cursor.plus({ [unit]: delta - 1 });\n delta -= 1;\n } else {\n cursor = highWater;\n }\n\n results[unit] = delta;\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nexport default function(earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n const remainingMillis = later - cursor;\n\n const lowerOrderUnits = units.filter(\n u => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n );\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({ [lowestOrder]: 1 });\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n const duration = Duration.fromObject(Object.assign(results, opts));\n\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts)\n .shiftTo(...lowerOrderUnits)\n .plus(duration);\n } else {\n return duration;\n }\n}\n","const numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\"\n};\n\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881]\n};\n\n// eslint-disable-next-line\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nexport function parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\nexport function digitRegex({ numberingSystem }, append = \"\") {\n return new RegExp(`${numberingSystems[numberingSystem || \"latn\"]}${append}`);\n}\n","import { parseMillis, isUndefined, untruncateYear, signedOffset, hasOwnProperty } from \"./util.js\";\nimport Formatter from \"./formatter.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport DateTime from \"../datetime.js\";\nimport { digitRegex, parseDigits } from \"./digits.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = i => i) {\n return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n return s.replace(/\\./, \"\\\\.?\");\n}\n\nfunction stripInsensitivities(s) {\n return s.replace(/\\./, \"\").toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) =>\n strings.findIndex(i => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex\n };\n }\n}\n\nfunction offset(regex, groups) {\n return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n // eslint-disable-next-line no-useless-escape\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = t => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n unitate = t => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\", false), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\", false), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true, false), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true, false), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false, false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false, false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false, false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false, false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true, false), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true, false), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n default:\n return literal(t);\n }\n };\n\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP\n };\n\n unit.token = token;\n\n return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\"\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\"\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\"\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\"\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour: {\n numeric: \"h\",\n \"2-digit\": \"hh\"\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\"\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\"\n }\n};\n\nfunction tokenForPart(part, locale, formatOpts) {\n const { type, value } = part;\n\n if (type === \"literal\") {\n return {\n literal: true,\n val: value\n };\n }\n\n const style = formatOpts[type];\n\n let val = partTypeStyleToTokenVal[type];\n if (typeof val === \"object\") {\n val = val[style];\n }\n\n if (val) {\n return {\n literal: false,\n val\n };\n }\n\n return undefined;\n}\n\nfunction buildRegex(units) {\n const re = units.map(u => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n const toField = token => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n\n let zone;\n if (!isUndefined(matches.Z)) {\n zone = new FixedOffsetZone(matches.Z);\n } else if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n } else {\n zone = null;\n }\n\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n\n return [vals, zone];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n\n return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n\n if (!formatOpts) {\n return token;\n }\n\n const formatter = Formatter.create(locale, formatOpts);\n const parts = formatter.formatDateTimeParts(getDummyDateTime());\n\n const tokens = parts.map(p => tokenForPart(p, locale, formatOpts));\n\n if (tokens.includes(undefined)) {\n return token;\n }\n\n return tokens;\n}\n\nfunction expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map(t => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nexport function explainFromTokens(locale, input, format) {\n const tokens = expandMacroTokens(Formatter.parseFormat(format), locale),\n units = tokens.map(t => unitForToken(t, locale)),\n disqualifyingUnit = units.find(t => t.invalidReason);\n\n if (disqualifyingUnit) {\n return { input, tokens, invalidReason: disqualifyingUnit.invalidReason };\n } else {\n const [regexString, handlers] = buildRegex(units),\n regex = RegExp(regexString, \"i\"),\n [rawMatches, matches] = match(input, regex, handlers),\n [result, zone] = matches ? dateTimeFromMatches(matches) : [null, null];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\n \"Can't include meridiem when specifying 24-hour format\"\n );\n }\n return { input, tokens, regex, rawMatches, matches, result, zone };\n }\n}\n\nexport function parseFromTokens(locale, input, format) {\n const { result, zone, invalidReason } = explainFromTokens(locale, input, format);\n return [result, zone, invalidReason];\n}\n","import {\n integerBetween,\n isLeapYear,\n timeObject,\n daysInYear,\n daysInMonth,\n weeksInWeekYear,\n isInteger\n} from \"./util.js\";\nimport Invalid from \"./invalid.js\";\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\n \"unit out of range\",\n `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n );\n}\n\nfunction dayOfWeek(year, month, day) {\n const js = new Date(Date.UTC(year, month - 1, day)).getUTCDay();\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex(i => i < ordinal),\n day = ordinal - table[month0];\n return { month: month0 + 1, day };\n}\n\n/**\n * @private\n */\n\nexport function gregorianToWeek(gregObj) {\n const { year, month, day } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = dayOfWeek(year, month, day);\n\n let weekNumber = Math.floor((ordinal - weekday + 10) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear);\n } else if (weekNumber > weeksInWeekYear(year)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return Object.assign({ weekYear, weekNumber, weekday }, timeObject(gregObj));\n}\n\nexport function weekToGregorian(weekData) {\n const { weekYear, weekNumber, weekday } = weekData,\n weekdayOfJan4 = dayOfWeek(weekYear, 1, 4),\n yearInDays = daysInYear(weekYear);\n\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 3,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n const { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(weekData));\n}\n\nexport function gregorianToOrdinal(gregData) {\n const { year, month, day } = gregData,\n ordinal = computeOrdinal(year, month, day);\n\n return Object.assign({ year, ordinal }, timeObject(gregData));\n}\n\nexport function ordinalToGregorian(ordinalData) {\n const { year, ordinal } = ordinalData,\n { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(ordinalData));\n}\n\nexport function hasInvalidWeekData(obj) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(obj.weekNumber, 1, weeksInWeekYear(obj.weekYear)),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.week);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\n\nexport function hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\n\nexport function hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\n\nexport function hasInvalidTimeData(obj) {\n const { hour, minute, second, millisecond } = obj;\n const validHour =\n integerBetween(hour, 0, 23) ||\n (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n","import Duration, { friendlyDuration } from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Settings from \"./settings.js\";\nimport Info from \"./info.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport {\n isUndefined,\n maybeArray,\n isDate,\n isNumber,\n bestBy,\n daysInMonth,\n daysInYear,\n isLeapYear,\n weeksInWeekYear,\n normalizeObject,\n roundTo,\n objToLocalTS\n} from \"./impl/util.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport diff from \"./impl/diff.js\";\nimport { parseRFC2822Date, parseISODate, parseHTTPDate, parseSQL } from \"./impl/regexParser.js\";\nimport { parseFromTokens, explainFromTokens } from \"./impl/tokenParser.js\";\nimport {\n gregorianToWeek,\n weekToGregorian,\n gregorianToOrdinal,\n ordinalToGregorian,\n hasInvalidGregorianData,\n hasInvalidWeekData,\n hasInvalidOrdinalData,\n hasInvalidTimeData\n} from \"./impl/conversions.js\";\nimport * as Formats from \"./impl/formats.js\";\nimport {\n InvalidArgumentError,\n ConflictingSpecificationError,\n InvalidUnitError,\n InvalidDateTimeError\n} from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid\n };\n return new DateTime(Object.assign({}, current, alts, { old: current }));\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n\n const d = new Date(ts);\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds()\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const keys = Object.keys(dur.values);\n if (keys.indexOf(\"milliseconds\") === -1) {\n keys.push(\"milliseconds\");\n }\n\n dur = dur.shiftTo(...keys);\n\n const oPre = inst.o,\n year = inst.c.year + dur.years,\n month = inst.c.month + dur.months + dur.quarters * 3,\n c = Object.assign({}, inst.c, {\n year,\n month,\n day: Math.min(inst.c.day, daysInMonth(year, month)) + dur.days + dur.weeks * 7\n }),\n millisToAdd = Duration.fromObject({\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n\n return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text) {\n const { setZone, zone } = opts;\n if (parsed && Object.keys(parsed).length !== 0) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(\n Object.assign(parsed, opts, {\n zone: interpretationZone,\n // setZone is a valid option in the calling methods, but not in fromObject\n setZone: undefined\n })\n );\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(\n new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n );\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid\n ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true\n }).formatDateTimeFromString(dt, format)\n : null;\n}\n\n// technical time formats (e.g. the time part of ISO 8601), take some options\n// and this commonizes their handling\nfunction toTechTimeFormat(\n dt,\n {\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset,\n includeZone = false,\n spaceZone = false,\n format = \"extended\"\n }\n) {\n let fmt = format === \"basic\" ? \"HHmm\" : \"HH:mm\";\n\n if (!suppressSeconds || dt.second !== 0 || dt.millisecond !== 0) {\n fmt += format === \"basic\" ? \"ss\" : \":ss\";\n if (!suppressMilliseconds || dt.millisecond !== 0) {\n fmt += \".SSS\";\n }\n }\n\n if ((includeZone || includeOffset) && spaceZone) {\n fmt += \" \";\n }\n\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += format === \"basic\" ? \"ZZZ\" : \"ZZ\";\n }\n\n return toTechFormat(dt, fmt);\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\n \"weekYear\",\n \"weekNumber\",\n \"weekday\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\"\n ],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\"\n }[unit.toLowerCase()];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, zone) {\n // assume we have the higher-order units\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zone.offset(tsNow),\n [ts, o] = objToTS(obj, offsetProvis, zone);\n\n return new DateTime({\n ts,\n zone,\n o\n });\n}\n\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = unit => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end\n .startOf(unit)\n .diff(start.startOf(unit), unit)\n .get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(0, opts.units[opts.units.length - 1]);\n}\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link local}, {@link utc}, and (most flexibly) {@link fromObject}. To create one from a standard string format, use {@link fromISO}, {@link fromHTTP}, and {@link fromRFC2822}. To create one from a custom string format, use {@link fromFormat}. To create one from a native JS date, use {@link fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link toObject}), use the {@link year}, {@link month},\n * {@link day}, {@link hour}, {@link minute}, {@link second}, {@link millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link weekYear}, {@link weekNumber}, and {@link weekday} accessors.\n * * **Configuration** See the {@link locale} and {@link numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link set}, {@link reconfigure}, {@link setZone}, {@link setLocale}, {@link plus}, {@link minus}, {@link endOf}, {@link startOf}, {@link toUTC}, and {@link toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link toRelative}, {@link toRelativeCalendar}, {@link toJSON}, {@link toISO}, {@link toHTTP}, {@link toObject}, {@link toRFC2822}, {@link toString}, {@link toLocaleString}, {@link toFormat}, {@link toMillis} and {@link toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nexport default class DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n\n let invalid =\n config.invalid ||\n (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n const ot = zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12) //~> 2017-03-12T00:00:00\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({ ts: Settings.now() });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n Settings.defaultZone\n );\n }\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765Z\n * @return {DateTime}\n */\n static utc(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({\n ts: Settings.now(),\n zone: FixedOffsetZone.utcInstance\n });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n FixedOffsetZone.utcInstance\n );\n }\n }\n\n /**\n * Create a DateTime from a Javascript Date object. Uses the default zone.\n * @param {Date} date - a Javascript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options)\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\n `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n );\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a Javascript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {string|Zone} [obj.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [obj.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} obj.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} obj.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @return {DateTime}\n */\n static fromObject(obj) {\n const zoneToUse = normalizeZone(obj.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zoneToUse.offset(tsNow),\n normalized = normalizeObject(obj, normalizeUnit, [\n \"zone\",\n \"locale\",\n \"outputCalendar\",\n \"numberingSystem\"\n ]),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber,\n loc = Locale.fromObject(obj);\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData\n ? hasInvalidWeekData(normalized)\n : containsOrdinal\n ? hasInvalidOrdinalData(normalized)\n : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData\n ? weekToGregorian(normalized)\n : containsOrdinal\n ? ordinalToGregorian(normalized)\n : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\n \"mismatched weekday\",\n `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n );\n }\n\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/parsing.html#table-of-tokens\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n }),\n [vals, parsedZone, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({ invalid });\n }\n }\n\n /**\n * Check if an object is a DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return (o && o.isLuxonDateTime) || false;\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.local().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.universal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return (\n this.offset > this.set({ month: 1 }).offset || this.offset > this.set({ month: 5 }).offset\n );\n }\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOpts(opts = {}) {\n const { locale, numberingSystem, calendar } = Formatter.create(\n this.loc.clone(opts),\n opts\n ).resolvedOptions(this);\n return { locale, numberingSystem, outputCalendar: calendar };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link plus}. You may wish to use {@link toLocal} and {@link toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, { ts: newTS, zone });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n return clone(this, { loc });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({ locale });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link reconfigure} and {@link setZone}.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const normalized = normalizeObject(values, normalizeUnit, []),\n settingWeekStuff =\n !isUndefined(normalized.weekYear) ||\n !isUndefined(normalized.weekNumber) ||\n !isUndefined(normalized.weekday);\n\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(Object.assign(gregorianToWeek(this.c), normalized));\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian(Object.assign(gregorianToOrdinal(this.c), normalized));\n } else {\n mixed = Object.assign(this.toObject(), normalized);\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, { ts, o });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.local().plus(123) //~> in 123 milliseconds\n * @example DateTime.local().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.local().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.local().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.local().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.local().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit) {\n if (!this.isValid) return this;\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n case \"milliseconds\":\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n o.weekday = 1;\n }\n\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'month', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit) {\n return this.isValid\n ? this.plus({ [unit]: 1 })\n .startOf(unit)\n .minus(1)\n : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options\n * @example DateTime.local().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.local().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.local().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.local().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param opts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @example DateTime.local().toLocaleString(); //=> 4/20/2017\n * @example DateTime.local().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString({ locale: 'en-gb' }); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.local().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.local().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.local().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.local().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.local().toLocaleString({ hour: '2-digit', minute: '2-digit', hour12: false }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(opts = Formats.DATE_SHORT) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTime(this)\n : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.local().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.local().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.local().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.local().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */\n toISO(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toISODate(opts)}T${this.toISOTime(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */\n toISODate({ format = \"extended\" } = {}) {\n let fmt = format === \"basic\" ? \"yyyyMMdd\" : \"yyyy-MM-dd\";\n if (this.year > 9999) {\n fmt = \"+\" + fmt;\n }\n\n return toTechFormat(this, fmt);\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n format = \"extended\"\n } = {}) {\n return toTechTimeFormat(this, {\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n format\n });\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime, always in UTC\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */\n toSQLDate() {\n return toTechFormat(this, \"yyyy-MM-dd\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.local().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.local().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.local().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({ includeOffset = true, includeZone = false } = {}) {\n return toTechTimeFormat(this, {\n includeOffset,\n includeZone,\n spaceZone: true\n });\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a Javascript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.local().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.c);\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a Javascript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\n this.invalid || otherDateTime.invalid,\n \"created by diffing an invalid DateTime\"\n );\n }\n\n const durOpts = Object.assign(\n { locale: this.locale, numberingSystem: this.numberingSystem },\n opts\n );\n\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.local(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @example DateTime.local().hasSame(otherDT, 'day'); //~> true if both the same calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit) {\n if (!this.isValid) return false;\n if (unit === \"millisecond\") {\n return this.valueOf() === otherDateTime.valueOf();\n } else {\n const inputMs = otherDateTime.valueOf();\n return this.startOf(unit) <= inputMs && inputMs <= this.endOf(unit);\n }\n }\n\n /**\n * Equality check\n * Two DateTimes are equal iff they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return (\n this.isValid &&\n other.isValid &&\n this.valueOf() === other.valueOf() &&\n this.zone.equals(other.zone) &&\n this.loc.equals(other.loc)\n );\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {boolean} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.local().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n * @example DateTime.local().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.local().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.local().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.local().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({ zone: this.zone }),\n padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n return diffRelative(\n base,\n this.plus(padding),\n Object.assign(options, {\n numeric: \"always\",\n units: [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"]\n })\n );\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.local().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.local().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n\n return diffRelative(\n options.base || DateTime.fromObject({ zone: this.zone }),\n this,\n Object.assign(options, {\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true\n })\n );\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return Formats.DATE_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return Formats.DATE_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return Formats.DATE_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return Formats.DATE_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return Formats.TIME_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return Formats.TIME_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return Formats.TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return Formats.TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return Formats.TIME_24_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return Formats.TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return Formats.TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return Formats.TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return Formats.DATETIME_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return Formats.DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return Formats.DATETIME_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return Formats.DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return Formats.DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return Formats.DATETIME_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return Formats.DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return Formats.DATETIME_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return Formats.DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\n `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n );\n }\n}\n"],"names":["LuxonError","Error","InvalidDateTimeError","constructor","reason","toMessage","InvalidIntervalError","InvalidDurationError","ConflictingSpecificationError","InvalidUnitError","unit","InvalidArgumentError","ZoneIsAbstractError","n","s","l","DATE_SHORT","year","month","day","DATE_MED","DATE_FULL","DATE_HUGE","weekday","TIME_SIMPLE","hour","minute","TIME_WITH_SECONDS","second","TIME_WITH_SHORT_OFFSET","timeZoneName","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","hour12","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","isUndefined","o","isNumber","isInteger","isString","isDate","Object","prototype","toString","call","hasIntl","Intl","DateTimeFormat","e","hasFormatToParts","formatToParts","hasRelative","RelativeTimeFormat","maybeArray","thing","Array","isArray","bestBy","arr","by","compare","length","undefined","reduce","best","next","pair","pick","obj","keys","a","k","hasOwnProperty","prop","integerBetween","bottom","top","floorMod","x","Math","floor","padStart","input","repeat","slice","parseInteger","string","parseInt","parseMillis","fraction","f","parseFloat","roundTo","number","digits","towardZero","factor","rounder","trunc","round","isLeapYear","daysInYear","daysInMonth","modMonth","modYear","objToLocalTS","d","Date","UTC","millisecond","setUTCFullYear","getUTCFullYear","weeksInWeekYear","weekYear","p1","last","p2","untruncateYear","parseZoneInfo","ts","offsetFormat","locale","timeZone","date","intlOpts","modified","assign","intl","parsed","find","m","type","toLowerCase","value","without","format","included","diffed","substring","trimmed","replace","signedOffset","offHourStr","offMinuteStr","offHour","Number","isNaN","offMin","offMinSigned","is","asNumber","numericValue","normalizeObject","normalizer","nonUnitKeys","normalized","u","indexOf","v","formatOffset","offset","hours","minutes","abs","sign","base","RangeError","timeObject","ianaRegex","stringify","JSON","sort","monthsLong","monthsShort","monthsNarrow","months","weekdaysLong","weekdaysShort","weekdaysNarrow","weekdays","meridiems","erasLong","erasShort","erasNarrow","eras","meridiemForDateTime","dt","weekdayForDateTime","monthForDateTime","eraForDateTime","formatRelativeTime","count","numeric","narrow","units","years","quarters","weeks","days","seconds","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","formatString","knownFormat","filtered","key","dateTimeHuge","Formats","stringifyTokens","splits","tokenToString","token","literal","val","macroTokenToFormatOpts","D","DD","DDD","DDDD","t","tt","ttt","tttt","T","TT","TTT","TTTT","ff","fff","ffff","F","FF","FFF","FFFF","Formatter","create","opts","parseFormat","fmt","current","currentFull","bracketed","i","c","charAt","push","formatOpts","loc","systemLoc","formatWithSystemDefault","redefaultToSystem","df","dtFormatter","formatDateTime","formatDateTimeParts","resolvedOptions","num","p","forceSimple","padTo","numberFormatter","formatDateTimeFromString","knownEnglish","listingMode","useDateTimeFormatter","outputCalendar","extract","isOffsetFixed","allowZ","isValid","zone","meridiem","English","standalone","maybeMacro","era","offsetName","zoneName","weekNumber","ordinal","quarter","formatDurationFromString","dur","tokenToField","lildur","mapped","get","tokens","realTokens","found","concat","collapsed","shiftTo","map","filter","Invalid","explanation","Zone","name","universal","equals","otherZone","singleton","LocalZone","instance","getTimezoneOffset","matchingRegex","RegExp","source","dtfCache","makeDTF","typeToPos","hackyOffset","dtf","formatted","exec","fMonth","fDay","fYear","fHour","fMinute","fSecond","partsOffset","filled","pos","ianaZoneCache","IANAZone","resetCache","isValidSpecifier","match","isValidZone","parseGMTOffset","specifier","valid","adjustedHour","asUTC","asTS","over","FixedOffsetZone","utcInstance","parseSpecifier","r","fixed","InvalidZone","NaN","normalizeZone","defaultZone","lowered","now","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","throwOnInvalid","Settings","defaultZoneName","z","numberingSystem","resetCaches","Locale","intlDTCache","getCachedDTF","locString","intlNumCache","getCachedINF","inf","NumberFormat","intlRelCache","getCachedRTF","cacheKeyOpts","sysLocaleCache","systemLocale","computedSys","parseLocaleString","localeStr","uIndex","options","smaller","calendar","intlConfigString","mapMonths","ms","DateTime","utc","mapWeekdays","listStuff","defaultOK","englishFn","intlFn","mode","supportsFastNumbers","startsWith","PolyNumberFormatter","useGrouping","minimumIntegerDigits","PolyDateFormatter","fromMillis","toJSDate","tokenFormat","PolyRelFormatter","isEnglish","style","rtf","fromOpts","defaultToEN","specifiedLocale","localeR","numberingSystemR","outputCalendarR","fromObject","numbering","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","weekdaysCache","monthsCache","meridiemCache","eraCache","fastNumbersCached","fastNumbers","hasFTP","isActuallyEn","hasNoWeirdness","clone","alts","getOwnPropertyNames","redefaultToEN","formatStr","field","results","matching","relFormatter","other","combineRegexes","regexes","full","combineExtractors","extractors","mergedVals","mergedZone","cursor","ex","parse","patterns","regex","extractor","simpleParse","ret","offsetRegex","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","isoYmdRegex","isoWeekRegex","isoOrdinalRegex","extractISOWeekData","extractISOOrdinalData","sqlYmdRegex","sqlTimeRegex","sqlTimeExtensionRegex","int","fallback","extractISOYmd","item","extractISOTime","extractISOOffset","local","fullOffset","extractIANAZone","isoDuration","extractISODuration","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","hasNegativePrefix","maybeNegate","milliseconds","obsOffsets","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","fromStrings","weekdayStr","result","rfc2822","extractRFC2822","obsOffset","milOffset","preprocessRFC2822","trim","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDataAndTime","extractISOTimeAndOffset","parseISODate","parseRFC2822Date","parseHTTPDate","parseISODuration","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOYmdTimeOffsetAndIANAZone","extractISOTimeOffsetAndIANAZone","parseSQL","INVALID","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits","reverseUnits","reverse","clear","conf","values","conversionAccuracy","Duration","antiTrunc","ceil","convert","matrix","fromMap","fromUnit","toMap","toUnit","conv","raw","sameSign","added","normalizeValues","vals","previous","config","accurate","invalid","isLuxonDuration","normalizeUnit","fromISO","text","week","isDuration","toFormat","fmtOpts","toObject","includeConfig","toISO","toJSON","valueOf","as","plus","duration","friendlyDuration","minus","negate","mapUnits","fn","set","mixed","reconfigure","normalize","built","accumulated","lastUnit","own","ak","down","negated","invalidReason","invalidExplanation","durationish","validateStartEnd","start","end","Interval","isLuxonInterval","fromDateTimes","builtStart","friendlyDateTime","builtEnd","validateError","after","before","split","isInterval","toDuration","startOf","diff","hasSame","isEmpty","isAfter","dateTime","isBefore","contains","splitAt","dateTimes","sorted","splitBy","divideEqually","numberOfParts","overlaps","abutsStart","abutsEnd","engulfs","intersection","union","merge","intervals","final","b","sofar","xor","currentCount","ends","time","flattened","difference","toISODate","toISOTime","dateFormat","separator","mapEndpoints","mapFn","Info","hasDST","proto","setZone","isValidIANAZone","monthsFormat","weekdaysFormat","features","intlTokens","zones","relative","dayDiff","earlier","later","utcDayStart","toUTC","keepLocalTime","highOrderDiffs","differs","lowestOrder","highWater","differ","delta","remainingMillis","lowerOrderUnits","numberingSystems","arab","arabext","bali","beng","deva","fullwide","gujr","hanidec","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","latn","numberingSystemsUTF16","hanidecChars","parseDigits","str","code","charCodeAt","search","min","max","digitRegex","append","MISSING_FTP","intUnit","post","deser","fixListRegex","stripInsensitivities","oneOf","strings","startIndex","join","findIndex","groups","h","simple","escapeToken","unitForToken","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","unitate","partTypeStyleToTokenVal","short","long","dayperiod","dayPeriod","tokenForPart","part","buildRegex","re","handlers","matches","all","matchIndex","dateTimeFromMatches","toField","Z","q","M","G","y","S","dummyDateTimeCache","getDummyDateTime","maybeExpandMacroToken","formatter","parts","includes","expandMacroTokens","explainFromTokens","disqualifyingUnit","regexString","rawMatches","parseFromTokens","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","getUTCDay","computeOrdinal","uncomputeOrdinal","table","month0","gregorianToWeek","gregObj","weekToGregorian","weekData","weekdayOfJan4","yearInDays","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","hasInvalidWeekData","validYear","validWeek","validWeekday","hasInvalidOrdinalData","validOrdinal","hasInvalidGregorianData","validMonth","validDay","hasInvalidTimeData","validHour","validMinute","validSecond","validMillisecond","MAX_DATE","unsupportedZone","possiblyCachedWeekData","inst","old","fixOffset","localTS","tz","utcGuess","o2","o3","tsToObj","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","objToTS","adjustTime","oPre","millisToAdd","parseDataToDateTime","parsedZone","interpretationZone","toTechFormat","toTechTimeFormat","suppressSeconds","suppressMilliseconds","includeOffset","includeZone","spaceZone","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedWeekUnits","orderedOrdinalUnits","weeknumber","weeksnumber","weeknumbers","weekyear","weekyears","quickDT","tsNow","offsetProvis","diffRelative","calendary","unchanged","ot","_zone","isLuxonDateTime","fromJSDate","zoneToUse","fromSeconds","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","useWeekData","defaultValues","objNow","foundFirst","higherOrderInvalid","gregorian","tsFinal","offsetFinal","fromRFC2822","fromHTTP","fromFormat","localeToUse","fromString","fromSQL","isDateTime","monthShort","monthLong","weekdayShort","weekdayLong","offsetNameShort","offsetNameLong","isInDST","isInLeapYear","resolvedLocaleOpts","toLocal","keepCalendarTime","newTS","offsetGuess","asObj","setLocale","settingWeekStuff","normalizedUnit","endOf","toLocaleString","toLocaleParts","toISOWeekDate","toRFC2822","toHTTP","toSQLDate","toSQLTime","toSQL","toMillis","toSeconds","toBSON","otherDateTime","durOpts","otherIsLater","diffNow","until","inputMs","toRelative","padding","toRelativeCalendar","every","fromFormatExplain","fromStringExplain","dateTimeish"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"luxon.js","sources":["../../src/errors.js","../../src/impl/formats.js","../../src/impl/util.js","../../src/impl/english.js","../../src/impl/formatter.js","../../src/impl/invalid.js","../../src/zone.js","../../src/zones/localZone.js","../../src/zones/IANAZone.js","../../src/zones/fixedOffsetZone.js","../../src/zones/invalidZone.js","../../src/impl/zoneUtil.js","../../src/settings.js","../../src/impl/locale.js","../../src/impl/regexParser.js","../../src/duration.js","../../src/interval.js","../../src/info.js","../../src/impl/diff.js","../../src/impl/digits.js","../../src/impl/tokenParser.js","../../src/impl/conversions.js","../../src/datetime.js"],"sourcesContent":["// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nclass LuxonError extends Error {}\n\n/**\n * @private\n */\nexport class InvalidDateTimeError extends LuxonError {\n constructor(reason) {\n super(`Invalid DateTime: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidIntervalError extends LuxonError {\n constructor(reason) {\n super(`Invalid Interval: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidDurationError extends LuxonError {\n constructor(reason) {\n super(`Invalid Duration: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class ConflictingSpecificationError extends LuxonError {}\n\n/**\n * @private\n */\nexport class InvalidUnitError extends LuxonError {\n constructor(unit) {\n super(`Invalid unit ${unit}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidArgumentError extends LuxonError {}\n\n/**\n * @private\n */\nexport class ZoneIsAbstractError extends LuxonError {\n constructor() {\n super(\"Zone is an abstract class\");\n }\n}\n","/**\n * @private\n */\n\nconst n = \"numeric\",\n s = \"short\",\n l = \"long\";\n\nexport const DATE_SHORT = {\n year: n,\n month: n,\n day: n\n};\n\nexport const DATE_MED = {\n year: n,\n month: s,\n day: n\n};\n\nexport const DATE_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s\n};\n\nexport const DATE_FULL = {\n year: n,\n month: l,\n day: n\n};\n\nexport const DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l\n};\n\nexport const TIME_SIMPLE = {\n hour: n,\n minute: n\n};\n\nexport const TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n\n};\n\nexport const TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n\nexport const TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23', always 24-hour.\n */\nexport const TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 EDT', always 24-hour.\n */\nexport const TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: s\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 Eastern Daylight Time', always 24-hour.\n */\nexport const TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: l\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s\n};\n\nexport const DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l\n};\n\nexport const DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n","/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\nimport { InvalidArgumentError } from \"../errors.js\";\n\n/**\n * @private\n */\n\n// TYPES\n\nexport function isUndefined(o) {\n return typeof o === \"undefined\";\n}\n\nexport function isNumber(o) {\n return typeof o === \"number\";\n}\n\nexport function isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\n\nexport function isString(o) {\n return typeof o === \"string\";\n}\n\nexport function isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nexport function hasIntl() {\n try {\n return typeof Intl !== \"undefined\" && Intl.DateTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\nexport function hasFormatToParts() {\n return !isUndefined(Intl.DateTimeFormat.prototype.formatToParts);\n}\n\nexport function hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nexport function maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\n\nexport function bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\n\nexport function pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\n\nexport function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n// NUMBERS AND STRINGS\n\nexport function integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nexport function floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\n\nexport function padStart(input, n = 2) {\n if (input.toString().length < n) {\n return (\"0\".repeat(n) + input).slice(-n);\n } else {\n return input.toString();\n }\n}\n\nexport function parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\n\nexport function parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\n\nexport function roundTo(number, digits, towardZero = false) {\n const factor = 10 ** digits,\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nexport function isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// covert a calendar object to a local timestamp (epoch, but with the offset baked in)\nexport function objToLocalTS(obj) {\n let d = Date.UTC(\n obj.year,\n obj.month - 1,\n obj.day,\n obj.hour,\n obj.minute,\n obj.second,\n obj.millisecond\n );\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n return +d;\n}\n\nexport function weeksInWeekYear(weekYear) {\n const p1 =\n (weekYear +\n Math.floor(weekYear / 4) -\n Math.floor(weekYear / 100) +\n Math.floor(weekYear / 400)) %\n 7,\n last = weekYear - 1,\n p2 = (last + Math.floor(last / 4) - Math.floor(last / 100) + Math.floor(last / 400)) % 7;\n return p1 === 4 || p2 === 3 ? 53 : 52;\n}\n\nexport function untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > 60 ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nexport function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hour12: false,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\"\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n const modified = Object.assign({ timeZoneName: offsetFormat }, intlOpts),\n intl = hasIntl();\n\n if (intl && hasFormatToParts()) {\n const parsed = new Intl.DateTimeFormat(locale, modified)\n .formatToParts(date)\n .find(m => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n } else if (intl) {\n // this probably doesn't work for all locales\n const without = new Intl.DateTimeFormat(locale, intlOpts).format(date),\n included = new Intl.DateTimeFormat(locale, modified).format(date),\n diffed = included.substring(without.length),\n trimmed = diffed.replace(/^[, \\u200e]+/, \"\");\n return trimmed;\n } else {\n return null;\n }\n}\n\n// signedOffset('-5', '30') -> -330\nexport function signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nexport function asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue))\n throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\n\nexport function normalizeObject(obj, normalizer, nonUnitKeys) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n if (nonUnitKeys.indexOf(u) >= 0) continue;\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\nexport function formatOffset(offset, format) {\n const hours = Math.trunc(Math.abs(offset / 60)),\n minutes = Math.trunc(Math.abs(offset % 60)),\n sign = offset >= 0 ? \"+\" : \"-\";\n\n switch (format) {\n case \"short\":\n return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return `${sign}${hours}${minutes > 0 ? `:${minutes}` : \"\"}`;\n case \"techie\":\n return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\n\nexport function timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n\nexport const ianaRegex = /[A-Za-z_+-]{1,256}(:?\\/[A-Za-z_+-]{1,256}(\\/[A-Za-z_+-]{1,256})?)?/;\n","import * as Formats from \"./formats.js\";\nimport { pick } from \"./util.js\";\n\nfunction stringify(obj) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n}\n\n/**\n * @private\n */\n\nexport const monthsLong = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\n\nexport const monthsShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n];\n\nexport const monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nexport function months(length) {\n switch (length) {\n case \"narrow\":\n return monthsNarrow;\n case \"short\":\n return monthsShort;\n case \"long\":\n return monthsLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\n\nexport const weekdaysLong = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\"\n];\n\nexport const weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nexport const weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nexport function weekdays(length) {\n switch (length) {\n case \"narrow\":\n return weekdaysNarrow;\n case \"short\":\n return weekdaysShort;\n case \"long\":\n return weekdaysLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\n\nexport const meridiems = [\"AM\", \"PM\"];\n\nexport const erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nexport const erasShort = [\"BC\", \"AD\"];\n\nexport const erasNarrow = [\"B\", \"A\"];\n\nexport function eras(length) {\n switch (length) {\n case \"narrow\":\n return erasNarrow;\n case \"short\":\n return erasShort;\n case \"long\":\n return erasLong;\n default:\n return null;\n }\n}\n\nexport function meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nexport function weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\n\nexport function monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\n\nexport function eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nexport function formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"]\n };\n\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n default: // fall through\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow\n ? singular\n ? lilUnits[1]\n : lilUnits[2] || lilUnits[1]\n : singular\n ? units[unit][0]\n : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nexport function formatString(knownFormat) {\n // these all have the offsets removed because we don't have access to them\n // without all the intl stuff this is backfilling\n const filtered = pick(knownFormat, [\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n \"hour12\"\n ]),\n key = stringify(filtered),\n dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n switch (key) {\n case stringify(Formats.DATE_SHORT):\n return \"M/d/yyyy\";\n case stringify(Formats.DATE_MED):\n return \"LLL d, yyyy\";\n case stringify(Formats.DATE_MED_WITH_WEEKDAY):\n return \"EEE, LLL d, yyyy\";\n case stringify(Formats.DATE_FULL):\n return \"LLLL d, yyyy\";\n case stringify(Formats.DATE_HUGE):\n return \"EEEE, LLLL d, yyyy\";\n case stringify(Formats.TIME_SIMPLE):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_SECONDS):\n return \"h:mm:ss a\";\n case stringify(Formats.TIME_WITH_SHORT_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_LONG_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_24_SIMPLE):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_SECONDS):\n return \"HH:mm:ss\";\n case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_LONG_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.DATETIME_SHORT):\n return \"M/d/yyyy, h:mm a\";\n case stringify(Formats.DATETIME_MED):\n return \"LLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL):\n return \"LLLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_HUGE):\n return dateTimeHuge;\n case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):\n return \"M/d/yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_SECONDS):\n return \"LLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):\n return \"EEE, d LLL yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL_WITH_SECONDS):\n return \"LLLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):\n return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n default:\n return dateTimeHuge;\n }\n}\n","import * as English from \"./english.js\";\nimport * as Formats from \"./formats.js\";\nimport { hasFormatToParts, padStart } from \"./util.js\";\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\n\nconst macroTokenToFormatOpts = {\n D: Formats.DATE_SHORT,\n DD: Formats.DATE_MED,\n DDD: Formats.DATE_FULL,\n DDDD: Formats.DATE_HUGE,\n t: Formats.TIME_SIMPLE,\n tt: Formats.TIME_WITH_SECONDS,\n ttt: Formats.TIME_WITH_SHORT_OFFSET,\n tttt: Formats.TIME_WITH_LONG_OFFSET,\n T: Formats.TIME_24_SIMPLE,\n TT: Formats.TIME_24_WITH_SECONDS,\n TTT: Formats.TIME_24_WITH_SHORT_OFFSET,\n TTTT: Formats.TIME_24_WITH_LONG_OFFSET,\n f: Formats.DATETIME_SHORT,\n ff: Formats.DATETIME_MED,\n fff: Formats.DATETIME_FULL,\n ffff: Formats.DATETIME_HUGE,\n F: Formats.DATETIME_SHORT_WITH_SECONDS,\n FF: Formats.DATETIME_MED_WITH_SECONDS,\n FFF: Formats.DATETIME_FULL_WITH_SECONDS,\n FFFF: Formats.DATETIME_HUGE_WITH_SECONDS\n};\n\n/**\n * @private\n */\n\nexport default class Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n\n static parseFormat(fmt) {\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({ literal: false, val: currentFull });\n }\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n\n return splits;\n }\n\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTime(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTimeParts(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.formatToParts();\n }\n\n resolvedOptions(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.resolvedOptions();\n }\n\n num(n, p = 0) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n const opts = Object.assign({}, this.opts);\n\n if (p > 0) {\n opts.padTo = p;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n }\n\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter =\n this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\" && hasFormatToParts(),\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = opts => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () =>\n knownEnglish\n ? English.meridiemForDateTime(dt)\n : string({ hour: \"numeric\", hour12: true }, \"dayperiod\"),\n month = (length, standalone) =>\n knownEnglish\n ? English.monthForDateTime(dt, length)\n : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n weekday = (length, standalone) =>\n knownEnglish\n ? English.weekdayForDateTime(dt, length)\n : string(\n standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n \"weekday\"\n ),\n maybeMacro = token => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = length =>\n knownEnglish ? English.eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n tokenToString = token => {\n // Where possible: http://cldr.unicode.org/translation/date-time#TOC-Stand-Alone-vs.-Format-Styles\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n case \"ZZ\":\n // like +06:00\n return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n case \"ZZZ\":\n // like +0600\n return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter\n ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter\n ? string({ month: \"2-digit\" }, \"month\")\n : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter\n ? string({ year: \"2-digit\" }, \"year\")\n : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n\n formatDurationFromString(dur, fmt) {\n const tokenToField = token => {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = lildur => token => {\n const mapped = tokenToField(token);\n if (mapped) {\n return this.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(\n (found, { literal, val }) => (literal ? found : found.concat(val)),\n []\n ),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter(t => t));\n return stringifyTokens(tokens, tokenToString(collapsed));\n }\n}\n","export default class Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n","/* eslint no-unused-vars: \"off\" */\nimport { ZoneIsAbstractError } from \"./errors.js\";\n\n/**\n * @interface\n */\nexport default class Zone {\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get type() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n get name() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n get universal() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */\n get isValid() {\n throw new ZoneIsAbstractError();\n }\n}\n","import { formatOffset, parseZoneInfo, hasIntl } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * Represents the local zone for this Javascript environment.\n * @implements {Zone}\n */\nexport default class LocalZone extends Zone {\n /**\n * Get a singleton instance of the local zone\n * @return {LocalZone}\n */\n static get instance() {\n if (singleton === null) {\n singleton = new LocalZone();\n }\n return singleton;\n }\n\n /** @override **/\n get type() {\n return \"local\";\n }\n\n /** @override **/\n get name() {\n if (hasIntl()) {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n } else return \"local\";\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"local\";\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import { formatOffset, parseZoneInfo, isUndefined, ianaRegex, objToLocalTS } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nconst matchingRegex = RegExp(`^${ianaRegex.source}$`);\n\nlet dtfCache = {};\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n });\n }\n return dtfCache[zone];\n}\n\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n};\n\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed;\n return [fYear, fMonth, fDay, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n const formatted = dtf.formatToParts(date),\n filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const { type, value } = formatted[i],\n pos = typeToPos[type];\n\n if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\n\nlet ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nexport default class IANAZone extends Zone {\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n static create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n return ianaZoneCache[name];\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Fantasia/Castle\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return !!(s && s.match(matchingRegex));\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n // Etc/GMT+8 -> -480\n /** @ignore */\n static parseGMTOffset(specifier) {\n if (specifier) {\n const match = specifier.match(/^Etc\\/GMT([+-]\\d{1,2})$/i);\n if (match) {\n return -60 * parseInt(match[1]);\n }\n }\n return null;\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /** @override **/\n get type() {\n return \"iana\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n const date = new Date(ts),\n dtf = makeDTF(this.name),\n [year, month, day, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date),\n // work around https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /** @override **/\n get isValid() {\n return this.valid;\n }\n}\n","import { formatOffset, signedOffset } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nexport default class FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /** @override **/\n get type() {\n return \"fixed\";\n }\n\n /** @override **/\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n /** @override **/\n offsetName() {\n return this.name;\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /** @override **/\n get universal() {\n return true;\n }\n\n /** @override **/\n offset() {\n return this.fixed;\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import Zone from \"../zone.js\";\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nexport default class InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n","/**\n * @private\n */\n\nimport Zone from \"../zone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport InvalidZone from \"../zones/invalidZone.js\";\n\nimport { isUndefined, isString, isNumber } from \"./util.js\";\n\nexport function normalizeZone(input, defaultZone) {\n let offset;\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"local\") return defaultZone;\n else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n else if ((offset = IANAZone.parseGMTOffset(input)) != null) {\n // handle Etc/GMT-4, which V8 chokes on\n return FixedOffsetZone.instance(offset);\n } else if (IANAZone.isValidSpecifier(lowered)) return IANAZone.create(input);\n else return FixedOffsetZone.parseSpecifier(lowered) || new InvalidZone(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && input.offset && typeof input.offset === \"number\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n","import LocalZone from \"./zones/localZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport Locale from \"./impl/locale.js\";\n\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nlet now = () => Date.now(),\n defaultZone = null, // not setting this directly to LocalZone.instance bc loading order issues\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n throwOnInvalid = false;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nexport default class Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Get the default time zone to create DateTimes in.\n * @type {string}\n */\n static get defaultZoneName() {\n return Settings.defaultZone.name;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * @type {string}\n */\n static set defaultZoneName(z) {\n if (!z) {\n defaultZone = null;\n } else {\n defaultZone = normalizeZone(z);\n }\n }\n\n /**\n * Get the default time zone object to create DateTimes in. Does not affect existing instances.\n * @type {Zone}\n */\n static get defaultZone() {\n return defaultZone || LocalZone.instance;\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n }\n}\n","import { hasFormatToParts, hasIntl, padStart, roundTo, hasRelative } from \"./util.js\";\nimport * as English from \"./english.js\";\nimport Settings from \"../settings.js\";\nimport DateTime from \"../datetime.js\";\nimport Formatter from \"./formatter.js\";\n\nlet intlDTCache = {};\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlNumCache = {};\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\n\nlet intlRelCache = {};\nfunction getCachedRTF(locString, opts = {}) {\n const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else if (hasIntl()) {\n const computedSys = new Intl.DateTimeFormat().resolvedOptions().locale;\n // node sometimes defaults to \"und\". Override that because that is dumb\n sysLocaleCache = !computedSys || computedSys === \"und\" ? \"en-US\" : computedSys;\n return sysLocaleCache;\n } else {\n sysLocaleCache = \"en-US\";\n return sysLocaleCache;\n }\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n const smaller = localeStr.substring(0, uIndex);\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n } catch (e) {\n options = getCachedDTF(smaller).resolvedOptions();\n }\n\n const { numberingSystem, calendar } = options;\n // return the smaller one so that we can append the calendar and numbering overrides to it\n return [smaller, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (hasIntl()) {\n if (outputCalendar || numberingSystem) {\n localeStr += \"-u\";\n\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n } else {\n return [];\n }\n}\n\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2016, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction listStuff(loc, length, defaultOK, englishFn, intlFn) {\n const mode = loc.listingMode(defaultOK);\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return (\n loc.numberingSystem === \"latn\" ||\n !loc.locale ||\n loc.locale.startsWith(\"en\") ||\n (hasIntl() && new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\")\n );\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n if (!forceSimple && hasIntl()) {\n const intlOpts = { useGrouping: false };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n this.hasIntl = hasIntl();\n\n let z;\n if (dt.zone.universal && this.hasIntl) {\n // Chromium doesn't support fixed-offset zones like Etc/GMT+8 in its formatter,\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=364374.\n // So we have to make do. Two cases:\n // 1. The format options tell us to show the zone. We can't do that, so the best\n // we can do is format the date in UTC.\n // 2. The format options don't tell us to show the zone. Then we can adjust them\n // the time and tell the formatter to show it to us in UTC, so that the time is right\n // and the bad zone doesn't show up.\n // We can clean all this up when Chrome fixes this.\n z = \"UTC\";\n if (opts.timeZoneName) {\n this.dt = dt;\n } else {\n this.dt = dt.offset === 0 ? dt : DateTime.fromMillis(dt.ts + dt.offset * 60 * 1000);\n }\n } else if (dt.zone.type === \"local\") {\n this.dt = dt;\n } else {\n this.dt = dt;\n z = dt.zone.name;\n }\n\n if (this.hasIntl) {\n const intlOpts = Object.assign({}, this.opts);\n if (z) {\n intlOpts.timeZone = z;\n }\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n }\n\n format() {\n if (this.hasIntl) {\n return this.dtf.format(this.dt.toJSDate());\n } else {\n const tokenFormat = English.formatString(this.opts),\n loc = Locale.create(\"en-US\");\n return Formatter.create(loc).formatDateTimeFromString(this.dt, tokenFormat);\n }\n }\n\n formatToParts() {\n if (this.hasIntl && hasFormatToParts()) {\n return this.dtf.formatToParts(this.dt.toJSDate());\n } else {\n // This is kind of a cop out. We actually could do this for English. However, we couldn't do it for intl strings\n // and IMO it's too weird to have an uncanny valley like that\n return [];\n }\n }\n\n resolvedOptions() {\n if (this.hasIntl) {\n return this.dtf.resolvedOptions();\n } else {\n return {\n locale: \"en-US\",\n numberingSystem: \"latn\",\n outputCalendar: \"gregory\"\n };\n }\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = Object.assign({ style: \"long\" }, opts);\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return English.formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\n\n/**\n * @private\n */\n\nexport default class Locale {\n static fromOpts(opts) {\n return Locale.create(opts.locale, opts.numberingSystem, opts.outputCalendar, opts.defaultToEN);\n }\n\n static create(locale, numberingSystem, outputCalendar, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale,\n // the system locale is useful for human readable strings but annoying for parsing/formatting known formats\n localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale()),\n numberingSystemR = numberingSystem || Settings.defaultNumberingSystem,\n outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n return new Locale(localeR, numberingSystemR, outputCalendarR, specifiedLocale);\n }\n\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n }\n\n static fromObject({ locale, numberingSystem, outputCalendar } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar);\n }\n\n constructor(locale, numbering, outputCalendar, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n this.weekdaysCache = { format: {}, standalone: {} };\n this.monthsCache = { format: {}, standalone: {} };\n this.meridiemCache = null;\n this.eraCache = {};\n\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n\n listingMode(defaultOK = true) {\n const intl = hasIntl(),\n hasFTP = intl && hasFormatToParts(),\n isActuallyEn = this.isEnglish(),\n hasNoWeirdness =\n (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n\n if (!hasFTP && !(isActuallyEn && hasNoWeirdness) && !defaultOK) {\n return \"error\";\n } else if (!hasFTP || (isActuallyEn && hasNoWeirdness)) {\n return \"en\";\n } else {\n return \"intl\";\n }\n }\n\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(\n alts.locale || this.specifiedLocale,\n alts.numberingSystem || this.numberingSystem,\n alts.outputCalendar || this.outputCalendar,\n alts.defaultToEN || false\n );\n }\n }\n\n redefaultToEN(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: true }));\n }\n\n redefaultToSystem(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: false }));\n }\n\n months(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.months, () => {\n const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n this.monthsCache[formatStr][length] = mapMonths(dt => this.extract(dt, intl, \"month\"));\n }\n return this.monthsCache[formatStr][length];\n });\n }\n\n weekdays(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.weekdays, () => {\n const intl = format\n ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n : { weekday: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays(dt =>\n this.extract(dt, intl, \"weekday\")\n );\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n\n meridiems(defaultOK = true) {\n return listStuff(\n this,\n undefined,\n defaultOK,\n () => English.meridiems,\n () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = { hour: \"numeric\", hour12: true };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n dt => this.extract(dt, intl, \"dayperiod\")\n );\n }\n\n return this.meridiemCache;\n }\n );\n }\n\n eras(length, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.eras, () => {\n const intl = { era: length };\n\n // This is utter bullshit. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map(dt =>\n this.extract(dt, intl, \"era\")\n );\n }\n\n return this.eraCache[length];\n });\n }\n\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find(m => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n\n isEnglish() {\n return (\n this.locale === \"en\" ||\n this.locale.toLowerCase() === \"en-us\" ||\n (hasIntl() && new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\"))\n );\n }\n\n equals(other) {\n return (\n this.locale === other.locale &&\n this.numberingSystem === other.numberingSystem &&\n this.outputCalendar === other.outputCalendar\n );\n }\n}\n","import {\n untruncateYear,\n signedOffset,\n parseInteger,\n parseMillis,\n ianaRegex,\n isUndefined\n} from \"./util.js\";\nimport * as English from \"./english.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n return m =>\n extractors\n .reduce(\n ([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [Object.assign(mergedVals, val), mergedZone || zone, next];\n },\n [{}, null, 1]\n )\n .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\n\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/,\n isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,30}))?)?)?/,\n isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${offsetRegex.source}?`),\n isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`),\n isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/,\n isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/,\n isoOrdinalRegex = /(\\d{4})-?(\\d{3})/,\n extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\"),\n extractISOOrdinalData = simpleParse(\"year\", \"ordinal\"),\n sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/, // dumbed-down version of the ISO one\n sqlTimeRegex = RegExp(\n `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n ),\n sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1)\n };\n\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n const item = {\n hour: int(match, cursor, 0),\n minute: int(match, cursor + 1, 0),\n second: int(match, cursor + 2, 0),\n millisecond: parseMillis(match[cursor + 3])\n };\n\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO duration parsing\n\nconst isoDuration = /^-?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)?)?)$/;\n\nfunction extractISODuration(match) {\n const [\n s,\n yearStr,\n monthStr,\n weekStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr,\n millisecondsStr\n ] = match;\n\n const hasNegativePrefix = s[0] === \"-\";\n\n const maybeNegate = num => (num && hasNegativePrefix ? -num : num);\n\n return [\n {\n years: maybeNegate(parseInteger(yearStr)),\n months: maybeNegate(parseInteger(monthStr)),\n weeks: maybeNegate(parseInteger(weekStr)),\n days: maybeNegate(parseInteger(dayStr)),\n hours: maybeNegate(parseInteger(hourStr)),\n minutes: maybeNegate(parseInteger(minuteStr)),\n seconds: maybeNegate(parseInteger(secondStr)),\n milliseconds: maybeNegate(parseMillis(millisecondsStr))\n }\n ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\n\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: English.monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr)\n };\n\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday =\n weekdayStr.length > 3\n ? English.weekdaysLong.indexOf(weekdayStr) + 1\n : English.weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 = /^(?:(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)))$/;\n\nfunction extractRFC2822(match) {\n const [\n ,\n weekdayStr,\n dayStr,\n monthStr,\n yearStr,\n hourStr,\n minuteStr,\n secondStr,\n obsOffset,\n milOffset,\n offHourStr,\n offMinuteStr\n ] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, \" \")\n .replace(/(\\s\\s+)/g, \" \")\n .trim();\n}\n\n// http date\n\nconst rfc1123 = /^(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$/,\n rfc850 = /^(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$/,\n ascii = /^(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})$/;\n\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n extractISOWeekData,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOOrdinalDataAndTime = combineExtractors(extractISOOrdinalData, extractISOTime);\nconst extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset);\n\n/**\n * @private\n */\n\nexport function parseISODate(s) {\n return parse(\n s,\n [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDataAndTime],\n [isoTimeCombinedRegex, extractISOTimeAndOffset]\n );\n}\n\nexport function parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nexport function parseHTTPDate(s) {\n return parse(\n s,\n [rfc1123, extractRFC1123Or850],\n [rfc850, extractRFC1123Or850],\n [ascii, extractASCII]\n );\n}\n\nexport function parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOYmdTimeOffsetAndIANAZone = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\nexport function parseSQL(s) {\n return parse(\n s,\n [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeOffsetAndIANAZone],\n [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n );\n}\n","import { InvalidArgumentError, InvalidDurationError, InvalidUnitError } from \"./errors.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Locale from \"./impl/locale.js\";\nimport { parseISODuration } from \"./impl/regexParser.js\";\nimport {\n asNumber,\n hasOwnProperty,\n isNumber,\n isUndefined,\n normalizeObject,\n roundTo\n} from \"./impl/util.js\";\nimport Settings from \"./settings.js\";\n\nconst INVALID = \"Invalid Duration\";\n\n// unit conversion constants\nconst lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000\n },\n hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n minutes: { seconds: 60, milliseconds: 60 * 1000 },\n seconds: { milliseconds: 1000 }\n },\n casualMatrix = Object.assign(\n {\n years: {\n quarters: 4,\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n seconds: 91 * 24 * 60 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n ),\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = Object.assign(\n {\n years: {\n quarters: 4,\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: (daysInYearAccurate * 24) / 4,\n minutes: (daysInYearAccurate * 24 * 60) / 4,\n seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n );\n\n// units ordered by size\nconst orderedUnits = [\n \"years\",\n \"quarters\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n];\n\nconst reverseUnits = orderedUnits.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : Object.assign({}, dur.values, alts.values || {}),\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy\n };\n return new Duration(conf);\n}\n\nfunction antiTrunc(n) {\n return n < 0 ? Math.floor(n) : Math.ceil(n);\n}\n\n// NB: mutates parameters\nfunction convert(matrix, fromMap, fromUnit, toMap, toUnit) {\n const conv = matrix[toUnit][fromUnit],\n raw = fromMap[fromUnit] / conv,\n sameSign = Math.sign(raw) === Math.sign(toMap[toUnit]),\n // ok, so this is wild, but see the matrix in the tests\n added =\n !sameSign && toMap[toUnit] !== 0 && Math.abs(raw) <= 1 ? antiTrunc(raw) : Math.trunc(raw);\n toMap[toUnit] += added;\n fromMap[fromUnit] -= added * conv;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n reverseUnits.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n convert(matrix, vals, previous, vals, current);\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime.plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration.years}, {@link Duration.months}, {@link Duration.weeks}, {@link Duration.days}, {@link Duration.hours}, {@link Duration.minutes}, {@link Duration.seconds}, {@link Duration.milliseconds} accessors.\n * * **Configuration** See {@link Duration.locale} and {@link Duration.numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration.plus}, {@link Duration.minus}, {@link Duration.normalize}, {@link Duration.set}, {@link Duration.reconfigure}, {@link Duration.shiftTo}, and {@link Duration.negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration.as}, {@link Duration.toISO}, {@link Duration.toFormat}, and {@link Duration.toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nexport default class Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = accurate ? accurateMatrix : casualMatrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject(Object.assign({ milliseconds: count }, opts));\n }\n\n /**\n * Create a Duration from a Javascript object with keys like 'years' and 'hours.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {string} [obj.locale='en-US'] - the locale to use\n * @param {string} obj.numberingSystem - the numbering system to use\n * @param {string} [obj.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromObject(obj) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\n `Duration.fromObject: argument expected to be an object, got ${\n obj === null ? \"null\" : typeof obj\n }`\n );\n }\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit, [\n \"locale\",\n \"numberingSystem\",\n \"conversionAccuracy\",\n \"zone\" // a bit of debt; it's super inconvenient internally not to be able to blindly pass this\n ]),\n loc: Locale.fromObject(obj),\n conversionAccuracy: obj.conversionAccuracy\n });\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n const obj = Object.assign(parsed, opts);\n return Duration.fromObject(obj);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({ invalid });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\"\n }[unit ? unit.toLowerCase() : unit];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return (o && o.isLuxonDuration) || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * The duration will be converted to the set of units in the format string using {@link Duration.shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = Object.assign({}, opts, {\n floor: opts.round !== false && opts.floor !== false\n });\n return this.isValid\n ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a Javascript object with this Duration's values.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.values);\n\n if (opts.includeConfig) {\n base.conversionAccuracy = this.conversionAccuracy;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n valueOf() {\n return this.as(\"milliseconds\");\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration),\n result = {};\n\n for (const k of orderedUnits) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone(this, { values: result }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit((x, u) => u === \"hour\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone(this, { values: result }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).years //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).months //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).days //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const mixed = Object.assign(this.values, normalizeObject(values, Duration.normalizeUnit, []));\n return clone(this, { values: mixed });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({ locale, numberingSystem, conversionAccuracy } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem }),\n opts = { loc };\n\n if (conversionAccuracy) {\n opts.conversionAccuracy = conversionAccuracy;\n }\n\n return clone(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map(u => Duration.normalizeUnit(u));\n\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n\n for (const k of orderedUnits) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = own - i; // we'd like to absorb these fractions in another unit\n\n // plus anything further down the chain that should be rolled up in to this\n for (const down in vals) {\n if (orderedUnits.indexOf(down) > orderedUnits.indexOf(k)) {\n convert(this.matrix, vals, down, built, k);\n }\n }\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] +=\n key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n return clone(this, { values: built }, true).normalize();\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = -this.values[k];\n }\n return clone(this, { values: negated }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n for (const u of orderedUnits) {\n if (this.values[u] !== other.values[u]) {\n return false;\n }\n }\n return true;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDuration(durationish) {\n if (isNumber(durationish)) {\n return Duration.fromMillis(durationish);\n } else if (Duration.isDuration(durationish)) {\n return durationish;\n } else if (typeof durationish === \"object\") {\n return Duration.fromObject(durationish);\n } else {\n throw new InvalidArgumentError(\n `Unknown duration argument ${durationish} of type ${typeof durationish}`\n );\n }\n}\n","import DateTime, { friendlyDateTime } from \"./datetime.js\";\nimport Duration, { friendlyDuration } from \"./duration.js\";\nimport Settings from \"./settings.js\";\nimport { InvalidArgumentError, InvalidIntervalError } from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\n \"end before start\",\n `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n );\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link fromDateTimes}, {@link after}, {@link before}, or {@link fromISO}.\n * * **Accessors** Use {@link start} and {@link end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link count}, {@link length}, {@link hasSame}, {@link contains}, {@link isAfter}, or {@link isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link set}, {@link splitAt}, {@link splitBy}, {@link divideEqually}, {@link merge}, {@link xor}, {@link union}, {@link intersection}, or {@link difference}.\n * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs}.\n * * **Output** To convert the Interval into other representations, see {@link toString}, {@link toISO}, {@link toISODate}, {@link toISOTime}, {@link toFormat}, and {@link toDuration}.\n */\nexport default class Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({ invalid });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n\n const validateError = validateStartEnd(builtStart, builtEnd);\n\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `<start>/<end>`, `<start>/<duration>`, and `<duration>/<end>` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime.fromISO} and optionally {@link Duration.fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n let start, startIsValid;\n try {\n start = DateTime.fromISO(s, opts);\n startIsValid = start.isValid;\n } catch (e) {\n startIsValid = false;\n }\n\n let end, endIsValid;\n try {\n end = DateTime.fromISO(e, opts);\n endIsValid = end.isValid;\n } catch (e) {\n endIsValid = false;\n }\n\n if (startIsValid && endIsValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (startIsValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (endIsValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return (o && o.isLuxonInterval) || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @return {number}\n */\n count(unit = \"milliseconds\") {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit),\n end = this.end.startOf(unit);\n return Math.floor(end.diff(start, unit).get(unit)) + 1;\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({ start, end } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...[DateTime]} dateTimes - the unit of time to count.\n * @return {[Interval]}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes\n .map(friendlyDateTime)\n .filter(d => this.contains(d))\n .sort(),\n results = [];\n let { s } = this,\n i = 0;\n\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {[Interval]}\n */\n splitBy(duration) {\n const dur = friendlyDuration(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n let { s } = this,\n added,\n next;\n\n const results = [];\n while (s < this.e) {\n added = s.plus(dur);\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {[Interval]}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Return whether this Interval engulfs the start and end of the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s > e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static merge(intervals) {\n const [found, final] = intervals.sort((a, b) => a.s - b.s).reduce(\n ([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n },\n [[], null]\n );\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map(i => [{ time: i.s, type: \"s\" }, { time: i.e, type: \"e\" }]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {[Interval]}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals))\n .map(i => this.intersection(i))\n .filter(i => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format string.\n * @param {string} dateFormat - the format string. This string formats the start and end time. See {@link DateTime.toFormat} for details.\n * @param {Object} opts - options\n * @param {string} [opts.separator = ' – '] - a separator to place between the start and end representations\n * @return {string}\n */\n toFormat(dateFormat, { separator = \" – \" } = {}) {\n if (!this.isValid) return INVALID;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n","import DateTime from \"./datetime.js\";\nimport Settings from \"./settings.js\";\nimport Locale from \"./impl/locale.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nimport { hasFormatToParts, hasIntl, hasRelative } from \"./impl/util.js\";\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nexport default class Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.local()\n .setZone(zone)\n .set({ month: 12 });\n\n return !zone.universal && proto.offset !== proto.set({ month: 6 }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidSpecifier(zone) && IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone.isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n * @return {[string]}\n */\n static months(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {[string]}\n */\n static monthsFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {[string]}\n */\n static weekdays(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link weekdays}\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @return {[string]}\n */\n static weekdaysFormat(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {[string]}\n */\n static meridiems({ locale = null } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {[string]}\n */\n static eras(length = \"short\", { locale = null } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, timezone support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `zones`: whether this environment supports IANA timezones\n * * `intlTokens`: whether this environment supports internationalized token-based formatting/parsing\n * * `intl`: whether this environment supports general internationalization\n * * `relative`: whether this environment supports relative time formatting\n * @example Info.features() //=> { intl: true, intlTokens: false, zones: true, relative: false }\n * @return {Object}\n */\n static features() {\n let intl = false,\n intlTokens = false,\n zones = false,\n relative = false;\n\n if (hasIntl()) {\n intl = true;\n intlTokens = hasFormatToParts();\n relative = hasRelative();\n\n try {\n zones =\n new Intl.DateTimeFormat(\"en\", { timeZone: \"America/New_York\" }).resolvedOptions()\n .timeZone === \"America/New_York\";\n } catch (e) {\n zones = false;\n }\n }\n\n return { intl, intlTokens, zones, relative };\n }\n}\n","import Duration from \"../duration.js\";\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = dt =>\n dt\n .toUTC(0, { keepLocalTime: true })\n .startOf(\"day\")\n .valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [\n [\"years\", (a, b) => b.year - a.year],\n [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n [\n \"weeks\",\n (a, b) => {\n const days = dayDiff(a, b);\n return (days - (days % 7)) / 7;\n }\n ],\n [\"days\", dayDiff]\n ];\n\n const results = {};\n let lowestOrder, highWater;\n\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n\n let delta = differ(cursor, later);\n highWater = cursor.plus({ [unit]: delta });\n\n if (highWater > later) {\n cursor = cursor.plus({ [unit]: delta - 1 });\n delta -= 1;\n } else {\n cursor = highWater;\n }\n\n results[unit] = delta;\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nexport default function(earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n const remainingMillis = later - cursor;\n\n const lowerOrderUnits = units.filter(\n u => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n );\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({ [lowestOrder]: 1 });\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n const duration = Duration.fromObject(Object.assign(results, opts));\n\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts)\n .shiftTo(...lowerOrderUnits)\n .plus(duration);\n } else {\n return duration;\n }\n}\n","const numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\"\n};\n\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881]\n};\n\n// eslint-disable-next-line\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nexport function parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\nexport function digitRegex({ numberingSystem }, append = \"\") {\n return new RegExp(`${numberingSystems[numberingSystem || \"latn\"]}${append}`);\n}\n","import { parseMillis, isUndefined, untruncateYear, signedOffset, hasOwnProperty } from \"./util.js\";\nimport Formatter from \"./formatter.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport DateTime from \"../datetime.js\";\nimport { digitRegex, parseDigits } from \"./digits.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = i => i) {\n return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nconst NBSP = String.fromCharCode(160);\nconst spaceOrNBSP = `( |${NBSP})`;\nconst spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, \"g\");\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n // make space and non breakable space characters interchangeable\n return s.replace(/\\./g, \"\\\\.?\").replace(spaceOrNBSPRegExp, spaceOrNBSP);\n}\n\nfunction stripInsensitivities(s) {\n return s\n .replace(/\\./g, \"\") // ignore dots that were made optional\n .replace(spaceOrNBSPRegExp, \" \") // interchange space and nbsp\n .toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) =>\n strings.findIndex(i => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex\n };\n }\n}\n\nfunction offset(regex, groups) {\n return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n // eslint-disable-next-line no-useless-escape\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = t => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n unitate = t => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\", false), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\", false), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true, false), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true, false), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false, false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false, false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false, false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false, false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true, false), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true, false), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n default:\n return literal(t);\n }\n };\n\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP\n };\n\n unit.token = token;\n\n return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\"\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\"\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\"\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\"\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour: {\n numeric: \"h\",\n \"2-digit\": \"hh\"\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\"\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\"\n }\n};\n\nfunction tokenForPart(part, locale, formatOpts) {\n const { type, value } = part;\n\n if (type === \"literal\") {\n return {\n literal: true,\n val: value\n };\n }\n\n const style = formatOpts[type];\n\n let val = partTypeStyleToTokenVal[type];\n if (typeof val === \"object\") {\n val = val[style];\n }\n\n if (val) {\n return {\n literal: false,\n val\n };\n }\n\n return undefined;\n}\n\nfunction buildRegex(units) {\n const re = units.map(u => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n const toField = token => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n\n let zone;\n if (!isUndefined(matches.Z)) {\n zone = new FixedOffsetZone(matches.Z);\n } else if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n } else {\n zone = null;\n }\n\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n\n return [vals, zone];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n\n return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n\n if (!formatOpts) {\n return token;\n }\n\n const formatter = Formatter.create(locale, formatOpts);\n const parts = formatter.formatDateTimeParts(getDummyDateTime());\n\n const tokens = parts.map(p => tokenForPart(p, locale, formatOpts));\n\n if (tokens.includes(undefined)) {\n return token;\n }\n\n return tokens;\n}\n\nfunction expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map(t => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nexport function explainFromTokens(locale, input, format) {\n const tokens = expandMacroTokens(Formatter.parseFormat(format), locale),\n units = tokens.map(t => unitForToken(t, locale)),\n disqualifyingUnit = units.find(t => t.invalidReason);\n\n if (disqualifyingUnit) {\n return { input, tokens, invalidReason: disqualifyingUnit.invalidReason };\n } else {\n const [regexString, handlers] = buildRegex(units),\n regex = RegExp(regexString, \"i\"),\n [rawMatches, matches] = match(input, regex, handlers),\n [result, zone] = matches ? dateTimeFromMatches(matches) : [null, null];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\n \"Can't include meridiem when specifying 24-hour format\"\n );\n }\n return { input, tokens, regex, rawMatches, matches, result, zone };\n }\n}\n\nexport function parseFromTokens(locale, input, format) {\n const { result, zone, invalidReason } = explainFromTokens(locale, input, format);\n return [result, zone, invalidReason];\n}\n","import {\n integerBetween,\n isLeapYear,\n timeObject,\n daysInYear,\n daysInMonth,\n weeksInWeekYear,\n isInteger\n} from \"./util.js\";\nimport Invalid from \"./invalid.js\";\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\n \"unit out of range\",\n `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n );\n}\n\nfunction dayOfWeek(year, month, day) {\n const js = new Date(Date.UTC(year, month - 1, day)).getUTCDay();\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex(i => i < ordinal),\n day = ordinal - table[month0];\n return { month: month0 + 1, day };\n}\n\n/**\n * @private\n */\n\nexport function gregorianToWeek(gregObj) {\n const { year, month, day } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = dayOfWeek(year, month, day);\n\n let weekNumber = Math.floor((ordinal - weekday + 10) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear);\n } else if (weekNumber > weeksInWeekYear(year)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return Object.assign({ weekYear, weekNumber, weekday }, timeObject(gregObj));\n}\n\nexport function weekToGregorian(weekData) {\n const { weekYear, weekNumber, weekday } = weekData,\n weekdayOfJan4 = dayOfWeek(weekYear, 1, 4),\n yearInDays = daysInYear(weekYear);\n\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 3,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n const { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(weekData));\n}\n\nexport function gregorianToOrdinal(gregData) {\n const { year, month, day } = gregData,\n ordinal = computeOrdinal(year, month, day);\n\n return Object.assign({ year, ordinal }, timeObject(gregData));\n}\n\nexport function ordinalToGregorian(ordinalData) {\n const { year, ordinal } = ordinalData,\n { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(ordinalData));\n}\n\nexport function hasInvalidWeekData(obj) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(obj.weekNumber, 1, weeksInWeekYear(obj.weekYear)),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.week);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\n\nexport function hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\n\nexport function hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\n\nexport function hasInvalidTimeData(obj) {\n const { hour, minute, second, millisecond } = obj;\n const validHour =\n integerBetween(hour, 0, 23) ||\n (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n","import Duration, { friendlyDuration } from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Settings from \"./settings.js\";\nimport Info from \"./info.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport {\n isUndefined,\n maybeArray,\n isDate,\n isNumber,\n bestBy,\n daysInMonth,\n daysInYear,\n isLeapYear,\n weeksInWeekYear,\n normalizeObject,\n roundTo,\n objToLocalTS\n} from \"./impl/util.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport diff from \"./impl/diff.js\";\nimport { parseRFC2822Date, parseISODate, parseHTTPDate, parseSQL } from \"./impl/regexParser.js\";\nimport { parseFromTokens, explainFromTokens } from \"./impl/tokenParser.js\";\nimport {\n gregorianToWeek,\n weekToGregorian,\n gregorianToOrdinal,\n ordinalToGregorian,\n hasInvalidGregorianData,\n hasInvalidWeekData,\n hasInvalidOrdinalData,\n hasInvalidTimeData\n} from \"./impl/conversions.js\";\nimport * as Formats from \"./impl/formats.js\";\nimport {\n InvalidArgumentError,\n ConflictingSpecificationError,\n InvalidUnitError,\n InvalidDateTimeError\n} from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid\n };\n return new DateTime(Object.assign({}, current, alts, { old: current }));\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n\n const d = new Date(ts);\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds()\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const oPre = inst.o,\n year = inst.c.year + Math.trunc(dur.years),\n month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3,\n c = Object.assign({}, inst.c, {\n year,\n month,\n day:\n Math.min(inst.c.day, daysInMonth(year, month)) +\n Math.trunc(dur.days) +\n Math.trunc(dur.weeks) * 7\n }),\n millisToAdd = Duration.fromObject({\n years: dur.years - Math.trunc(dur.years),\n quarters: dur.quarters - Math.trunc(dur.quarters),\n months: dur.months - Math.trunc(dur.months),\n weeks: dur.weeks - Math.trunc(dur.weeks),\n days: dur.days - Math.trunc(dur.days),\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n\n return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text) {\n const { setZone, zone } = opts;\n if (parsed && Object.keys(parsed).length !== 0) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(\n Object.assign(parsed, opts, {\n zone: interpretationZone,\n // setZone is a valid option in the calling methods, but not in fromObject\n setZone: undefined\n })\n );\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(\n new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n );\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid\n ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true\n }).formatDateTimeFromString(dt, format)\n : null;\n}\n\n// technical time formats (e.g. the time part of ISO 8601), take some options\n// and this commonizes their handling\nfunction toTechTimeFormat(\n dt,\n {\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset,\n includeZone = false,\n spaceZone = false,\n format = \"extended\"\n }\n) {\n let fmt = format === \"basic\" ? \"HHmm\" : \"HH:mm\";\n\n if (!suppressSeconds || dt.second !== 0 || dt.millisecond !== 0) {\n fmt += format === \"basic\" ? \"ss\" : \":ss\";\n if (!suppressMilliseconds || dt.millisecond !== 0) {\n fmt += \".SSS\";\n }\n }\n\n if ((includeZone || includeOffset) && spaceZone) {\n fmt += \" \";\n }\n\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += format === \"basic\" ? \"ZZZ\" : \"ZZ\";\n }\n\n return toTechFormat(dt, fmt);\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\n \"weekYear\",\n \"weekNumber\",\n \"weekday\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\"\n ],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\"\n }[unit.toLowerCase()];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, zone) {\n // assume we have the higher-order units\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zone.offset(tsNow),\n [ts, o] = objToTS(obj, offsetProvis, zone);\n\n return new DateTime({\n ts,\n zone,\n o\n });\n}\n\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = unit => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end\n .startOf(unit)\n .diff(start.startOf(unit), unit)\n .get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(0, opts.units[opts.units.length - 1]);\n}\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link local}, {@link utc}, and (most flexibly) {@link fromObject}. To create one from a standard string format, use {@link fromISO}, {@link fromHTTP}, and {@link fromRFC2822}. To create one from a custom string format, use {@link fromFormat}. To create one from a native JS date, use {@link fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link toObject}), use the {@link year}, {@link month},\n * {@link day}, {@link hour}, {@link minute}, {@link second}, {@link millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link weekYear}, {@link weekNumber}, and {@link weekday} accessors.\n * * **Configuration** See the {@link locale} and {@link numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link set}, {@link reconfigure}, {@link setZone}, {@link setLocale}, {@link plus}, {@link minus}, {@link endOf}, {@link startOf}, {@link toUTC}, and {@link toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link toRelative}, {@link toRelativeCalendar}, {@link toJSON}, {@link toISO}, {@link toHTTP}, {@link toObject}, {@link toRFC2822}, {@link toString}, {@link toLocaleString}, {@link toFormat}, {@link toMillis} and {@link toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nexport default class DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n\n let invalid =\n config.invalid ||\n (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n const ot = zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12) //~> 2017-03-12T00:00:00\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({ ts: Settings.now() });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n Settings.defaultZone\n );\n }\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765Z\n * @return {DateTime}\n */\n static utc(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({\n ts: Settings.now(),\n zone: FixedOffsetZone.utcInstance\n });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n FixedOffsetZone.utcInstance\n );\n }\n }\n\n /**\n * Create a DateTime from a Javascript Date object. Uses the default zone.\n * @param {Date} date - a Javascript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options)\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\n `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n );\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a Javascript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {string|Zone} [obj.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [obj.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} obj.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} obj.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @return {DateTime}\n */\n static fromObject(obj) {\n const zoneToUse = normalizeZone(obj.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zoneToUse.offset(tsNow),\n normalized = normalizeObject(obj, normalizeUnit, [\n \"zone\",\n \"locale\",\n \"outputCalendar\",\n \"numberingSystem\"\n ]),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber,\n loc = Locale.fromObject(obj);\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData\n ? hasInvalidWeekData(normalized)\n : containsOrdinal\n ? hasInvalidOrdinalData(normalized)\n : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData\n ? weekToGregorian(normalized)\n : containsOrdinal\n ? ordinalToGregorian(normalized)\n : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\n \"mismatched weekday\",\n `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n );\n }\n\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/parsing.html#table-of-tokens\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n }),\n [vals, parsedZone, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({ invalid });\n }\n }\n\n /**\n * Check if an object is a DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return (o && o.isLuxonDateTime) || false;\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.local().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.universal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return (\n this.offset > this.set({ month: 1 }).offset || this.offset > this.set({ month: 5 }).offset\n );\n }\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOpts(opts = {}) {\n const { locale, numberingSystem, calendar } = Formatter.create(\n this.loc.clone(opts),\n opts\n ).resolvedOptions(this);\n return { locale, numberingSystem, outputCalendar: calendar };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link plus}. You may wish to use {@link toLocal} and {@link toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, { ts: newTS, zone });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n return clone(this, { loc });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({ locale });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link reconfigure} and {@link setZone}.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const normalized = normalizeObject(values, normalizeUnit, []),\n settingWeekStuff =\n !isUndefined(normalized.weekYear) ||\n !isUndefined(normalized.weekNumber) ||\n !isUndefined(normalized.weekday);\n\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(Object.assign(gregorianToWeek(this.c), normalized));\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian(Object.assign(gregorianToOrdinal(this.c), normalized));\n } else {\n mixed = Object.assign(this.toObject(), normalized);\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, { ts, o });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.local().plus(123) //~> in 123 milliseconds\n * @example DateTime.local().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.local().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.local().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.local().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.local().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit) {\n if (!this.isValid) return this;\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n case \"milliseconds\":\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n o.weekday = 1;\n }\n\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'month', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit) {\n return this.isValid\n ? this.plus({ [unit]: 1 })\n .startOf(unit)\n .minus(1)\n : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options\n * @example DateTime.local().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.local().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.local().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.local().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param opts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @example DateTime.local().toLocaleString(); //=> 4/20/2017\n * @example DateTime.local().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString({ locale: 'en-gb' }); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.local().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.local().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.local().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.local().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.local().toLocaleString({ hour: '2-digit', minute: '2-digit', hour12: false }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(opts = Formats.DATE_SHORT) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTime(this)\n : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.local().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.local().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.local().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.local().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */\n toISO(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toISODate(opts)}T${this.toISOTime(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */\n toISODate({ format = \"extended\" } = {}) {\n let fmt = format === \"basic\" ? \"yyyyMMdd\" : \"yyyy-MM-dd\";\n if (this.year > 9999) {\n fmt = \"+\" + fmt;\n }\n\n return toTechFormat(this, fmt);\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n format = \"extended\"\n } = {}) {\n return toTechTimeFormat(this, {\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n format\n });\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime, always in UTC\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */\n toSQLDate() {\n return toTechFormat(this, \"yyyy-MM-dd\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.local().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.local().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.local().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({ includeOffset = true, includeZone = false } = {}) {\n return toTechTimeFormat(this, {\n includeOffset,\n includeZone,\n spaceZone: true\n });\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a Javascript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.local().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.c);\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a Javascript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\n this.invalid || otherDateTime.invalid,\n \"created by diffing an invalid DateTime\"\n );\n }\n\n const durOpts = Object.assign(\n { locale: this.locale, numberingSystem: this.numberingSystem },\n opts\n );\n\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.local(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @example DateTime.local().hasSame(otherDT, 'day'); //~> true if both the same calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit) {\n if (!this.isValid) return false;\n if (unit === \"millisecond\") {\n return this.valueOf() === otherDateTime.valueOf();\n } else {\n const inputMs = otherDateTime.valueOf();\n return this.startOf(unit) <= inputMs && inputMs <= this.endOf(unit);\n }\n }\n\n /**\n * Equality check\n * Two DateTimes are equal iff they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return (\n this.isValid &&\n other.isValid &&\n this.valueOf() === other.valueOf() &&\n this.zone.equals(other.zone) &&\n this.loc.equals(other.loc)\n );\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {boolean} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.local().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n * @example DateTime.local().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.local().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.local().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.local().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({ zone: this.zone }),\n padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n return diffRelative(\n base,\n this.plus(padding),\n Object.assign(options, {\n numeric: \"always\",\n units: [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"]\n })\n );\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.local().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.local().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n\n return diffRelative(\n options.base || DateTime.fromObject({ zone: this.zone }),\n this,\n Object.assign(options, {\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true\n })\n );\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return Formats.DATE_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return Formats.DATE_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'Fri, Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED_WITH_WEEKDAY() {\n return Formats.DATE_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return Formats.DATE_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return Formats.DATE_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return Formats.TIME_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return Formats.TIME_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return Formats.TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return Formats.TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return Formats.TIME_24_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return Formats.TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return Formats.TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return Formats.TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return Formats.DATETIME_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return Formats.DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return Formats.DATETIME_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return Formats.DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return Formats.DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return Formats.DATETIME_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return Formats.DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return Formats.DATETIME_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return Formats.DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\n `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n );\n }\n}\n"],"names":["LuxonError","Error","InvalidDateTimeError","constructor","reason","toMessage","InvalidIntervalError","InvalidDurationError","ConflictingSpecificationError","InvalidUnitError","unit","InvalidArgumentError","ZoneIsAbstractError","n","s","l","DATE_SHORT","year","month","day","DATE_MED","DATE_MED_WITH_WEEKDAY","weekday","DATE_FULL","DATE_HUGE","TIME_SIMPLE","hour","minute","TIME_WITH_SECONDS","second","TIME_WITH_SHORT_OFFSET","timeZoneName","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","hour12","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","isUndefined","o","isNumber","isInteger","isString","isDate","Object","prototype","toString","call","hasIntl","Intl","DateTimeFormat","e","hasFormatToParts","formatToParts","hasRelative","RelativeTimeFormat","maybeArray","thing","Array","isArray","bestBy","arr","by","compare","length","undefined","reduce","best","next","pair","pick","obj","keys","a","k","hasOwnProperty","prop","integerBetween","bottom","top","floorMod","x","Math","floor","padStart","input","repeat","slice","parseInteger","string","parseInt","parseMillis","fraction","f","parseFloat","roundTo","number","digits","towardZero","factor","rounder","trunc","round","isLeapYear","daysInYear","daysInMonth","modMonth","modYear","objToLocalTS","d","Date","UTC","millisecond","setUTCFullYear","getUTCFullYear","weeksInWeekYear","weekYear","p1","last","p2","untruncateYear","parseZoneInfo","ts","offsetFormat","locale","timeZone","date","intlOpts","modified","assign","intl","parsed","find","m","type","toLowerCase","value","without","format","included","diffed","substring","trimmed","replace","signedOffset","offHourStr","offMinuteStr","offHour","Number","isNaN","offMin","offMinSigned","is","asNumber","numericValue","normalizeObject","normalizer","nonUnitKeys","normalized","u","indexOf","v","formatOffset","offset","hours","abs","minutes","sign","RangeError","timeObject","ianaRegex","stringify","JSON","sort","monthsLong","monthsShort","monthsNarrow","months","weekdaysLong","weekdaysShort","weekdaysNarrow","weekdays","meridiems","erasLong","erasShort","erasNarrow","eras","meridiemForDateTime","dt","weekdayForDateTime","monthForDateTime","eraForDateTime","formatRelativeTime","count","numeric","narrow","units","years","quarters","weeks","days","seconds","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","formatString","knownFormat","filtered","key","dateTimeHuge","Formats","stringifyTokens","splits","tokenToString","token","literal","val","macroTokenToFormatOpts","D","DD","DDD","DDDD","t","tt","ttt","tttt","T","TT","TTT","TTTT","ff","fff","ffff","F","FF","FFF","FFFF","Formatter","create","opts","parseFormat","fmt","current","currentFull","bracketed","i","c","charAt","push","formatOpts","loc","systemLoc","formatWithSystemDefault","redefaultToSystem","df","dtFormatter","formatDateTime","formatDateTimeParts","resolvedOptions","num","p","forceSimple","padTo","numberFormatter","formatDateTimeFromString","knownEnglish","listingMode","useDateTimeFormatter","outputCalendar","extract","isOffsetFixed","allowZ","isValid","zone","meridiem","English","standalone","maybeMacro","era","offsetName","zoneName","weekNumber","ordinal","quarter","formatDurationFromString","dur","tokenToField","lildur","mapped","get","tokens","realTokens","found","concat","collapsed","shiftTo","map","filter","Invalid","explanation","Zone","name","universal","equals","otherZone","singleton","LocalZone","instance","getTimezoneOffset","matchingRegex","RegExp","source","dtfCache","makeDTF","typeToPos","hackyOffset","dtf","formatted","exec","fMonth","fDay","fYear","fHour","fMinute","fSecond","partsOffset","filled","pos","ianaZoneCache","IANAZone","resetCache","isValidSpecifier","match","isValidZone","parseGMTOffset","specifier","valid","adjustedHour","asUTC","asTS","over","FixedOffsetZone","utcInstance","parseSpecifier","r","fixed","InvalidZone","NaN","normalizeZone","defaultZone","lowered","now","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","throwOnInvalid","Settings","defaultZoneName","z","numberingSystem","resetCaches","Locale","intlDTCache","getCachedDTF","locString","intlNumCache","getCachedINF","inf","NumberFormat","intlRelCache","getCachedRTF","cacheKeyOpts","sysLocaleCache","systemLocale","computedSys","parseLocaleString","localeStr","uIndex","options","smaller","calendar","intlConfigString","mapMonths","ms","DateTime","utc","mapWeekdays","listStuff","defaultOK","englishFn","intlFn","mode","supportsFastNumbers","startsWith","PolyNumberFormatter","useGrouping","minimumIntegerDigits","PolyDateFormatter","fromMillis","toJSDate","tokenFormat","PolyRelFormatter","isEnglish","style","rtf","fromOpts","defaultToEN","specifiedLocale","localeR","numberingSystemR","outputCalendarR","fromObject","numbering","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","weekdaysCache","monthsCache","meridiemCache","eraCache","fastNumbersCached","fastNumbers","hasFTP","isActuallyEn","hasNoWeirdness","clone","alts","getOwnPropertyNames","redefaultToEN","formatStr","field","results","matching","relFormatter","other","combineRegexes","regexes","full","combineExtractors","extractors","mergedVals","mergedZone","cursor","ex","parse","patterns","regex","extractor","simpleParse","ret","offsetRegex","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","isoYmdRegex","isoWeekRegex","isoOrdinalRegex","extractISOWeekData","extractISOOrdinalData","sqlYmdRegex","sqlTimeRegex","sqlTimeExtensionRegex","int","fallback","extractISOYmd","item","extractISOTime","extractISOOffset","local","fullOffset","extractIANAZone","isoDuration","extractISODuration","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","hasNegativePrefix","maybeNegate","milliseconds","obsOffsets","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","fromStrings","weekdayStr","result","rfc2822","extractRFC2822","obsOffset","milOffset","preprocessRFC2822","trim","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDataAndTime","extractISOTimeAndOffset","parseISODate","parseRFC2822Date","parseHTTPDate","parseISODuration","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOYmdTimeOffsetAndIANAZone","extractISOTimeOffsetAndIANAZone","parseSQL","INVALID","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits","reverseUnits","reverse","clear","conf","values","conversionAccuracy","Duration","antiTrunc","ceil","convert","matrix","fromMap","fromUnit","toMap","toUnit","conv","raw","sameSign","added","normalizeValues","vals","previous","config","accurate","invalid","isLuxonDuration","normalizeUnit","fromISO","text","week","isDuration","toFormat","fmtOpts","toObject","base","includeConfig","toISO","toJSON","valueOf","as","plus","duration","friendlyDuration","minus","negate","mapUnits","fn","set","mixed","reconfigure","normalize","built","accumulated","lastUnit","own","ak","down","negated","invalidReason","invalidExplanation","durationish","validateStartEnd","start","end","Interval","isLuxonInterval","fromDateTimes","builtStart","friendlyDateTime","builtEnd","validateError","after","before","split","startIsValid","endIsValid","isInterval","toDuration","startOf","diff","hasSame","isEmpty","isAfter","dateTime","isBefore","contains","splitAt","dateTimes","sorted","splitBy","divideEqually","numberOfParts","overlaps","abutsStart","abutsEnd","engulfs","intersection","union","merge","intervals","final","b","sofar","xor","currentCount","ends","time","flattened","difference","toISODate","toISOTime","dateFormat","separator","mapEndpoints","mapFn","Info","hasDST","proto","setZone","isValidIANAZone","monthsFormat","weekdaysFormat","features","intlTokens","zones","relative","dayDiff","earlier","later","utcDayStart","toUTC","keepLocalTime","highOrderDiffs","differs","lowestOrder","highWater","differ","delta","remainingMillis","lowerOrderUnits","numberingSystems","arab","arabext","bali","beng","deva","fullwide","gujr","hanidec","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","latn","numberingSystemsUTF16","hanidecChars","parseDigits","str","code","charCodeAt","search","min","max","digitRegex","append","MISSING_FTP","intUnit","post","deser","NBSP","String","fromCharCode","spaceOrNBSP","spaceOrNBSPRegExp","fixListRegex","stripInsensitivities","oneOf","strings","startIndex","join","findIndex","groups","h","simple","escapeToken","unitForToken","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","unitate","partTypeStyleToTokenVal","short","long","dayperiod","dayPeriod","tokenForPart","part","buildRegex","re","handlers","matches","all","matchIndex","dateTimeFromMatches","toField","Z","q","M","G","y","S","dummyDateTimeCache","getDummyDateTime","maybeExpandMacroToken","formatter","parts","includes","expandMacroTokens","explainFromTokens","disqualifyingUnit","regexString","rawMatches","parseFromTokens","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","getUTCDay","computeOrdinal","uncomputeOrdinal","table","month0","gregorianToWeek","gregObj","weekToGregorian","weekData","weekdayOfJan4","yearInDays","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","hasInvalidWeekData","validYear","validWeek","validWeekday","hasInvalidOrdinalData","validOrdinal","hasInvalidGregorianData","validMonth","validDay","hasInvalidTimeData","validHour","validMinute","validSecond","validMillisecond","MAX_DATE","unsupportedZone","possiblyCachedWeekData","inst","old","fixOffset","localTS","tz","utcGuess","o2","o3","tsToObj","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","objToTS","adjustTime","oPre","millisToAdd","parseDataToDateTime","parsedZone","interpretationZone","toTechFormat","toTechTimeFormat","suppressSeconds","suppressMilliseconds","includeOffset","includeZone","spaceZone","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedWeekUnits","orderedOrdinalUnits","weeknumber","weeksnumber","weeknumbers","weekyear","weekyears","quickDT","tsNow","offsetProvis","diffRelative","calendary","unchanged","ot","_zone","isLuxonDateTime","fromJSDate","zoneToUse","fromSeconds","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","useWeekData","defaultValues","objNow","foundFirst","higherOrderInvalid","gregorian","tsFinal","offsetFinal","fromRFC2822","fromHTTP","fromFormat","localeToUse","fromString","fromSQL","isDateTime","monthShort","monthLong","weekdayShort","weekdayLong","offsetNameShort","offsetNameLong","isInDST","isInLeapYear","resolvedLocaleOpts","toLocal","keepCalendarTime","newTS","offsetGuess","asObj","setLocale","settingWeekStuff","normalizedUnit","endOf","toLocaleString","toLocaleParts","toISOWeekDate","toRFC2822","toHTTP","toSQLDate","toSQLTime","toSQL","toMillis","toSeconds","toBSON","otherDateTime","durOpts","otherIsLater","diffNow","until","inputMs","toRelative","padding","toRelativeCalendar","every","fromFormatExplain","fromStringExplain","dateTimeish"],"mappings":"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"} \ No newline at end of file diff --git a/npm_assets/node_modules/luxon/package.json b/npm_assets/node_modules/luxon/package.json index a3bf04663e..73d994bba5 100644 --- a/npm_assets/node_modules/luxon/package.json +++ b/npm_assets/node_modules/luxon/package.json @@ -1,38 +1,38 @@ { - "_from": "luxon@1.24.1", - "_id": "luxon@1.24.1", - "_inBundle": false, - "_integrity": "sha512-CgnIMKAWT0ghcuWFfCWBnWGOddM0zu6c4wZAWmD0NN7MZTnro0+833DF6tJep+xlxRPg4KtsYEHYLfTMBQKwYg==", - "_location": "/luxon", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "luxon@1.24.1", - "name": "luxon", - "escapedName": "luxon", - "rawSpec": "1.24.1", - "saveSpec": null, - "fetchSpec": "1.24.1" - }, - "_requiredBy": [ - "#USER", - "/" + "name": "luxon", + "version": "1.25.0", + "description": "Immutable date wrapper", + "author": "Isaac Cambron", + "keywords": [ + "date", + "immutable" ], - "_resolved": "https://registry.npmjs.org/luxon/-/luxon-1.24.1.tgz", - "_shasum": "a8383266131ed4eaed4b5f430f96f3695403a52a", - "_spec": "luxon@1.24.1", - "_where": "/Users/kwpolska/git/nikola/npm_assets", - "author": { - "name": "Isaac Cambron" + "repository": "https://github.com/moment/luxon", + "scripts": { + "build": "babel-node tasks/buildAll.js", + "build-node": "babel-node tasks/buildNode.js", + "build-global": "babel-node tasks/buildGlobal.js", + "jest": "jest", + "test": "jest --coverage", + "docs": "esdoc -c docs/index.js", + "site": "cp -r site/** build/", + "lint": "eslint --quiet src test benchmarks", + "lint!": "npm run format && npm run lint", + "format": "prettier --write 'src/**/*.js' 'test/**/*.js' 'benchmarks/*.js'", + "benchmark": "babel-node benchmarks/datetime.js", + "codecov": "codecov", + "check-doc-coverage": "babel-node tasks/docCoverage" }, - "browser": "build/cjs-browser/luxon.js", - "bugs": { - "url": "https://github.com/moment/luxon/issues" + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "lint-staged": { + "*.{js,json}": [ + "prettier --write" + ] }, - "bundleDependencies": false, - "deprecated": false, - "description": "Immutable date wrapper", "devDependencies": { "@babel/core": "^7.9.0", "@babel/node": "^7.8.7", @@ -70,6 +70,11 @@ "rollup-plugin-babel-minify": "^6.2.0", "uglify-js": "^3.9.0" }, + "main": "build/node/luxon.js", + "module": "src/luxon.js", + "browser": "build/cjs-browser/luxon.js", + "jsdelivr": "build/global/luxon.min.js", + "unpkg": "build/global/luxon.min.js", "engines": { "node": "*" }, @@ -86,45 +91,6 @@ "build/global/luxon.min.js.map", "src" ], - "homepage": "https://github.com/moment/luxon#readme", - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "jsdelivr": "build/global/luxon.min.js", - "keywords": [ - "date", - "immutable" - ], "license": "MIT", - "lint-staged": { - "*.{js,json}": [ - "prettier --write" - ] - }, - "main": "build/node/luxon.js", - "module": "src/luxon.js", - "name": "luxon", - "repository": { - "type": "git", - "url": "git+https://github.com/moment/luxon.git" - }, - "scripts": { - "benchmark": "babel-node benchmarks/datetime.js", - "build": "babel-node tasks/buildAll.js", - "build-global": "babel-node tasks/buildGlobal.js", - "build-node": "babel-node tasks/buildNode.js", - "check-doc-coverage": "babel-node tasks/docCoverage", - "codecov": "codecov", - "docs": "esdoc -c docs/index.js", - "format": "prettier --write 'src/**/*.js' 'test/**/*.js' 'benchmarks/*.js'", - "jest": "jest", - "lint": "eslint --quiet src test benchmarks", - "lint!": "npm run format && npm run lint", - "site": "cp -r site/** build/", - "test": "jest --coverage" - }, - "unpkg": "build/global/luxon.min.js", - "version": "1.24.1" + "sideEffects": false } diff --git a/npm_assets/node_modules/luxon/src/datetime.js b/npm_assets/node_modules/luxon/src/datetime.js index c123b85335..01532ff5a0 100644 --- a/npm_assets/node_modules/luxon/src/datetime.js +++ b/npm_assets/node_modules/luxon/src/datetime.js @@ -122,22 +122,23 @@ function objToTS(obj, offset, zone) { // create a new DT instance by adding a duration, adjusting for DSTs function adjustTime(inst, dur) { - const keys = Object.keys(dur.values); - if (keys.indexOf("milliseconds") === -1) { - keys.push("milliseconds"); - } - - dur = dur.shiftTo(...keys); - const oPre = inst.o, - year = inst.c.year + dur.years, - month = inst.c.month + dur.months + dur.quarters * 3, + year = inst.c.year + Math.trunc(dur.years), + month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3, c = Object.assign({}, inst.c, { year, month, - day: Math.min(inst.c.day, daysInMonth(year, month)) + dur.days + dur.weeks * 7 + day: + Math.min(inst.c.day, daysInMonth(year, month)) + + Math.trunc(dur.days) + + Math.trunc(dur.weeks) * 7 }), millisToAdd = Duration.fromObject({ + years: dur.years - Math.trunc(dur.years), + quarters: dur.quarters - Math.trunc(dur.quarters), + months: dur.months - Math.trunc(dur.months), + weeks: dur.weeks - Math.trunc(dur.weeks), + days: dur.days - Math.trunc(dur.days), hours: dur.hours, minutes: dur.minutes, seconds: dur.seconds, @@ -1943,6 +1944,14 @@ export default class DateTime { return Formats.DATE_MED; } + /** + * {@link toLocaleString} format like 'Fri, Oct 14, 1983' + * @type {Object} + */ + static get DATE_MED_WITH_WEEKDAY() { + return Formats.DATE_MED_WITH_WEEKDAY; + } + /** * {@link toLocaleString} format like 'October 14, 1983' * @type {Object} diff --git a/npm_assets/node_modules/luxon/src/duration.js b/npm_assets/node_modules/luxon/src/duration.js index ad973eadf5..3c6889a6d0 100644 --- a/npm_assets/node_modules/luxon/src/duration.js +++ b/npm_assets/node_modules/luxon/src/duration.js @@ -37,6 +37,7 @@ const lowOrderMatrix = { casualMatrix = Object.assign( { years: { + quarters: 4, months: 12, weeks: 52, days: 365, @@ -51,6 +52,7 @@ const lowOrderMatrix = { days: 91, hours: 91 * 24, minutes: 91 * 24 * 60, + seconds: 91 * 24 * 60 * 60, milliseconds: 91 * 24 * 60 * 60 * 1000 }, months: { @@ -69,6 +71,7 @@ const lowOrderMatrix = { accurateMatrix = Object.assign( { years: { + quarters: 4, months: 12, weeks: daysInYearAccurate / 7, days: daysInYearAccurate, @@ -588,8 +591,6 @@ export default class Duration { vals = this.toObject(); let lastUnit; - normalizeValues(this.matrix, vals); - for (const k of orderedUnits) { if (units.indexOf(k) >= 0) { lastUnit = k; diff --git a/npm_assets/node_modules/luxon/src/impl/english.js b/npm_assets/node_modules/luxon/src/impl/english.js index 100d5796e9..633f5943d9 100644 --- a/npm_assets/node_modules/luxon/src/impl/english.js +++ b/npm_assets/node_modules/luxon/src/impl/english.js @@ -187,6 +187,8 @@ export function formatString(knownFormat) { return "M/d/yyyy"; case stringify(Formats.DATE_MED): return "LLL d, yyyy"; + case stringify(Formats.DATE_MED_WITH_WEEKDAY): + return "EEE, LLL d, yyyy"; case stringify(Formats.DATE_FULL): return "LLLL d, yyyy"; case stringify(Formats.DATE_HUGE): diff --git a/npm_assets/node_modules/luxon/src/impl/formats.js b/npm_assets/node_modules/luxon/src/impl/formats.js index 8c66b9a368..25210f6f1d 100644 --- a/npm_assets/node_modules/luxon/src/impl/formats.js +++ b/npm_assets/node_modules/luxon/src/impl/formats.js @@ -18,6 +18,13 @@ export const DATE_MED = { day: n }; +export const DATE_MED_WITH_WEEKDAY = { + year: n, + month: s, + day: n, + weekday: s +}; + export const DATE_FULL = { year: n, month: l, diff --git a/npm_assets/node_modules/luxon/src/impl/regexParser.js b/npm_assets/node_modules/luxon/src/impl/regexParser.js index 1ceca9f92c..74ba737c93 100644 --- a/npm_assets/node_modules/luxon/src/impl/regexParser.js +++ b/npm_assets/node_modules/luxon/src/impl/regexParser.js @@ -66,7 +66,7 @@ function simpleParse(...keys) { // ISO and SQL parsing const offsetRegex = /(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/, - isoTimeBaseRegex = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,9}))?)?)?/, + isoTimeBaseRegex = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/, isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${offsetRegex.source}?`), isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`), isoYmdRegex = /([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/, @@ -120,7 +120,7 @@ function extractIANAZone(match, cursor) { // ISO duration parsing -const isoDuration = /^-?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,9})(?:[.,](-?\d{1,9}))?S)?)?)$/; +const isoDuration = /^-?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 extractISODuration(match) { const [ diff --git a/npm_assets/node_modules/luxon/src/impl/tokenParser.js b/npm_assets/node_modules/luxon/src/impl/tokenParser.js index 88560ae24a..4ca0401c11 100644 --- a/npm_assets/node_modules/luxon/src/impl/tokenParser.js +++ b/npm_assets/node_modules/luxon/src/impl/tokenParser.js @@ -12,13 +12,21 @@ function intUnit(regex, post = i => i) { return { regex, deser: ([s]) => post(parseDigits(s)) }; } +const NBSP = String.fromCharCode(160); +const spaceOrNBSP = `( |${NBSP})`; +const spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, "g"); + function fixListRegex(s) { // make dots optional and also make them literal - return s.replace(/\./, "\\.?"); + // make space and non breakable space characters interchangeable + return s.replace(/\./g, "\\.?").replace(spaceOrNBSPRegExp, spaceOrNBSP); } function stripInsensitivities(s) { - return s.replace(/\./, "").toLowerCase(); + return s + .replace(/\./g, "") // ignore dots that were made optional + .replace(spaceOrNBSPRegExp, " ") // interchange space and nbsp + .toLowerCase(); } function oneOf(strings, startIndex) { diff --git a/npm_assets/node_modules/luxon/src/impl/util.js b/npm_assets/node_modules/luxon/src/impl/util.js index 19d0c1e717..b345c69491 100644 --- a/npm_assets/node_modules/luxon/src/impl/util.js +++ b/npm_assets/node_modules/luxon/src/impl/util.js @@ -263,18 +263,17 @@ export function normalizeObject(obj, normalizer, nonUnitKeys) { } export function formatOffset(offset, format) { - const hours = Math.trunc(offset / 60), - minutes = Math.abs(offset % 60), - sign = hours >= 0 && !Object.is(hours, -0) ? "+" : "-", - base = `${sign}${Math.abs(hours)}`; + const hours = Math.trunc(Math.abs(offset / 60)), + minutes = Math.trunc(Math.abs(offset % 60)), + sign = offset >= 0 ? "+" : "-"; switch (format) { case "short": - return `${sign}${padStart(Math.abs(hours), 2)}:${padStart(minutes, 2)}`; + return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`; case "narrow": - return minutes > 0 ? `${base}:${minutes}` : base; + return `${sign}${hours}${minutes > 0 ? `:${minutes}` : ""}`; case "techie": - return `${sign}${padStart(Math.abs(hours), 2)}${padStart(minutes, 2)}`; + return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`; default: throw new RangeError(`Value format ${format} is out of range for property format`); } diff --git a/npm_assets/node_modules/luxon/src/info.js b/npm_assets/node_modules/luxon/src/info.js index 59e4f42d65..52912ac7f0 100644 --- a/npm_assets/node_modules/luxon/src/info.js +++ b/npm_assets/node_modules/luxon/src/info.js @@ -95,7 +95,7 @@ export default class Info { /** * Return an array of standalone week names. * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat - * @param {string} [length='long'] - the length of the month representation, such as "narrow", "short", "long". + * @param {string} [length='long'] - the length of the weekday representation, such as "narrow", "short", "long". * @param {Object} opts - options * @param {string} [opts.locale] - the locale code * @param {string} [opts.numberingSystem=null] - the numbering system @@ -114,7 +114,7 @@ export default class Info { * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that * changes the string. * See {@link weekdays} - * @param {string} [length='long'] - the length of the month representation, such as "narrow", "short", "long". + * @param {string} [length='long'] - the length of the weekday representation, such as "narrow", "short", "long". * @param {Object} opts - options * @param {string} [opts.locale=null] - the locale code * @param {string} [opts.numberingSystem=null] - the numbering system diff --git a/npm_assets/node_modules/luxon/src/interval.js b/npm_assets/node_modules/luxon/src/interval.js index ff5f16eb4d..f2cfce8b77 100644 --- a/npm_assets/node_modules/luxon/src/interval.js +++ b/npm_assets/node_modules/luxon/src/interval.js @@ -31,7 +31,7 @@ function validateStartEnd(start, end) { * * **Accessors** Use {@link start} and {@link end} to get the start and end. * * **Interrogation** To analyze the Interval, use {@link count}, {@link length}, {@link hasSame}, {@link contains}, {@link isAfter}, or {@link isBefore}. * * **Transformation** To create other Intervals out of this one, use {@link set}, {@link splitAt}, {@link splitBy}, {@link divideEqually}, {@link merge}, {@link xor}, {@link union}, {@link intersection}, or {@link difference}. - * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs} + * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs}. * * **Output** To convert the Interval into other representations, see {@link toString}, {@link toISO}, {@link toISODate}, {@link toISOTime}, {@link toFormat}, and {@link toDuration}. */ export default class Interval { @@ -134,19 +134,32 @@ export default class Interval { static fromISO(text, opts) { const [s, e] = (text || "").split("/", 2); if (s && e) { - const start = DateTime.fromISO(s, opts), + let start, startIsValid; + try { + start = DateTime.fromISO(s, opts); + startIsValid = start.isValid; + } catch (e) { + startIsValid = false; + } + + let end, endIsValid; + try { end = DateTime.fromISO(e, opts); + endIsValid = end.isValid; + } catch (e) { + endIsValid = false; + } - if (start.isValid && end.isValid) { + if (startIsValid && endIsValid) { return Interval.fromDateTimes(start, end); } - if (start.isValid) { + if (startIsValid) { const dur = Duration.fromISO(e, opts); if (dur.isValid) { return Interval.after(start, dur); } - } else if (end.isValid) { + } else if (endIsValid) { const dur = Duration.fromISO(s, opts); if (dur.isValid) { return Interval.before(end, dur); @@ -234,7 +247,7 @@ export default class Interval { * @return {boolean} */ hasSame(unit) { - return this.isValid ? this.e.minus(1).hasSame(this.s, unit) : false; + return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false; } /** diff --git a/npm_assets/package-lock.json b/npm_assets/package-lock.json index 2223f97914..abe16b907b 100644 --- a/npm_assets/package-lock.json +++ b/npm_assets/package-lock.json @@ -1,8 +1,89 @@ { "name": "Nikola", "version": "0.1.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "Nikola", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "baguettebox.js": "^1.11.0", + "bootstrap": "^4.5.2", + "html5shiv": "^3.7.3", + "jquery": "^3.5.1", + "justified-layout": "^3.0.0", + "livereload-js": "^2.4.0", + "luxon": "^1.24.1", + "popper.js": "^1.16.1" + } + }, + "node_modules/baguettebox.js": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/baguettebox.js/-/baguettebox.js-1.11.1.tgz", + "integrity": "sha512-0HnUVs+xaqwQOVbfi0kwZnZ1fJNWE5vJLCoCAtgQBtPmOJa1fhN8gubaBFOBGDkQy/vz6PWSr7B3WilhQKjyeQ==" + }, + "node_modules/bootstrap": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.3.tgz", + "integrity": "sha512-o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + }, + "peerDependencies": { + "jquery": "1.9.1 - 3", + "popper.js": "^1.16.1" + } + }, + "node_modules/html5shiv": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/html5shiv/-/html5shiv-3.7.3.tgz", + "integrity": "sha1-14qEo2e8uacQEA1XgCw4ewhGMdI=" + }, + "node_modules/jquery": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" + }, + "node_modules/justified-layout": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/justified-layout/-/justified-layout-3.0.0.tgz", + "integrity": "sha512-xki5bVJ84HokIV47mfHdmWB56zFrQKbtrU5KHA5GoatOnRwQWGOvNtBlbW8dU0yIa3pNmCPuacuuMRPvM9p5mg==", + "dependencies": { + "merge": "1.2.1" + } + }, + "node_modules/livereload-js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz", + "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==" + }, + "node_modules/luxon": { + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.25.0.tgz", + "integrity": "sha512-hEgLurSH8kQRjY6i4YLey+mcKVAWXbDNlZRmM6AgWDJ1cY3atl8Ztf5wEY7VBReFbmGnwQPz7KYJblL8B2k0jQ==", + "engines": { + "node": "*" + } + }, + "node_modules/merge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==" + }, + "node_modules/popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", + "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + } + }, "dependencies": { "baguettebox.js": { "version": "1.11.1", @@ -10,9 +91,10 @@ "integrity": "sha512-0HnUVs+xaqwQOVbfi0kwZnZ1fJNWE5vJLCoCAtgQBtPmOJa1fhN8gubaBFOBGDkQy/vz6PWSr7B3WilhQKjyeQ==" }, "bootstrap": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.2.tgz", - "integrity": "sha512-vlGn0bcySYl/iV+BGA544JkkZP5LB3jsmkeKLFQakCOwCM3AOk7VkldBz4jrzSe+Z0Ezn99NVXa1o45cQY4R6A==" + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.3.tgz", + "integrity": "sha512-o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ==", + "requires": {} }, "html5shiv": { "version": "3.7.3", @@ -38,9 +120,9 @@ "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==" }, "luxon": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.24.1.tgz", - "integrity": "sha512-CgnIMKAWT0ghcuWFfCWBnWGOddM0zu6c4wZAWmD0NN7MZTnro0+833DF6tJep+xlxRPg4KtsYEHYLfTMBQKwYg==" + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.25.0.tgz", + "integrity": "sha512-hEgLurSH8kQRjY6i4YLey+mcKVAWXbDNlZRmM6AgWDJ1cY3atl8Ztf5wEY7VBReFbmGnwQPz7KYJblL8B2k0jQ==" }, "merge": { "version": "1.2.1", diff --git a/scripts/release b/scripts/release index 0aa9b7935a..e7b1aaa6c8 100755 --- a/scripts/release +++ b/scripts/release @@ -142,7 +142,7 @@ cleanup git add -A --ignore-errors . || exit $? -git commit -S -asm "Version $version" || exit $? +git commit -S -am "Version $version" || exit $? git tag -sm "Version $version" v$version || exit $? git push --follow-tags origin master || exit $? diff --git a/setup.py b/setup.py index a5d2b626c5..d4ccf2fa38 100755 --- a/setup.py +++ b/setup.py @@ -106,7 +106,7 @@ def run(self): setup(name='Nikola', - version='8.1.1', + version='8.1.2', description='A modular, fast, simple, static website and blog generator', long_description=long_description, author='Roberto Alsina and others', diff --git a/snapcraft.yaml b/snapcraft.yaml index 393a2be00f..041898f3be 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: nikola -version: 8.1.1 +version: 8.1.2 summary: A static website generator description: A static website generator confinement: strict